剑指Offer-替换空格

替换空格

题目

请实现一个函数,将一个字符串中的空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy

思路

首先计算多少个空格,然后一个空格替换成三个char,依次插入。

代码

public class replaceSpace_2 {
    public String replaceSpace(StringBuffer str){
        char[] chars  = str.toString().toCharArray();
        int m = chars.length;
        int count = 0;
        for (int i=0;i<m;i++){
            if (chars[i]==' '){
                count++;
            }
        }

        if (count==0){
            return str.toString();
        }

        int  newLength = m + 2 * count;
        char[] newChar = new char[newLength];
        for (int i=m-1;i>=0;i--){
            if (chars[i]==' '){
                newChar[newLength-1]='0';
                newChar[newLength-2]='2';
                newChar[newLength-3]='%';
                newLength = newLength-3;
            }else {
                newChar[newLength-1]= chars[i];
                newLength = newLength-1;
            }
        }
        return new String(newChar);
    }
}
0%