乐趣区

剑指offer-牛客网-面试题3数组中重复的数字

法一

直接 replace 将空格替换
关键:replace

https://www.yiibai.com/java/l…

public class Solution {public String replaceSpace(StringBuffer str) {String string = str.toString();
        String str2 = string.replaceAll("","%20");
        return str2;
    }
}

法二

用 setlength 方法,先设置 StringBuffer 长度

public class Solution {public String replaceSpace(StringBuffer str) {
        int p1,p2;
        int n = 0;
        for (int i = 0; i < str.length(); i++)
            if(str.charAt(i) == ' ')
                n++;
        p1 = str.length() - 1;
        p2 = str.length() - 1 + n*2;
        str.setLength(str.length() + n*2);
        while(p1 < p2 && p1 >= 0){if(str.charAt(p1) != ' ') {str.replace(p2, p2+1, String.valueOf(str.charAt(p1)));
                p2--;
            }
            else {str.replace(p2-2,p2+1,"%20");
                p2 = p2 - 3;

            }
            p1--;
        }
        return str.toString();}
}

法三

新建一个数组,直接遍历,遇到空格就替换

退出移动版