zoukankan      html  css  js  c++  java
  • 4、替换空格。将空格换成其他字符。

    思路:若在同一个字符串移动,先遍历出空格个数,开辟空间,再从后往前遍历和复制。若允许新的空间,可随意。

     solution1:

        public class Solution {
        public String replaceSpace(StringBuffer str) {
            if(str == null || str.length() == 0){
                return str.toString();
            }
            StringBuffer str1 = new StringBuffer();
            for(int i = 0; i < str.length(); i++){
                if(str.charAt(i) == ' '){
                    str1.append("%20");
                } else {
                    str1.append(str.charAt(i));
                }
            }
            return str1.toString();
        }
        }

    solution2:

        public class Solution {
        public String replaceSpace(StringBuffer str) {
            if(str == null || str.length() == 0){
                return str.toString();
            }
            int oldlen = str.length();
            int blank = 0;
            for(int i = 0; i < str.length(); i++){
                if(str.charAt(i) == ' '){
                    blank++;
                }
            }
            int len = str.length() + blank * 2;
            //从后往前遍历str
            str.setLength(len);
             
            int index = len - 1;
            for(int j = oldlen - 1; j >= 0 && index > j; j--){
                if(str.charAt(j) == ' '){      
                    str.setCharAt(index--, '0');
                    str.setCharAt(index--, '2');
                    str.setCharAt(index--, '%');
     
                } else {
                    str.setCharAt(index--,str.charAt(j));
     
                }
            }
            return str.toString();
        }
        }

    solution3:

        public class Solution {
        public String replaceSpace(StringBuffer str) {
             
            return str.toString().replaceAll("\s", "%20");
        }
        }
    测试用例:
    字符串有空格(最前面,最后面,字符串中间,有连续多个字符)
    没有空格
    输入null,空,只有连续多个空格

  • 相关阅读:
    mysql 配置
    idea 学会看log文件
    ac自动机(tree+kmp模板)
    矩阵快速幂(纯数学递推)
    矩阵快速幂(queue递推)
    RMQ(连续相同最大值)
    dp(过河问题)
    bfs(火星撞地球)
    相同子序列集合
    图博弈
  • 原文地址:https://www.cnblogs.com/lingli-meng/p/7102153.html
Copyright © 2011-2022 走看看