题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
public class Solution {
public String replaceSpace(StringBuffer str) {
char[] chArr = str.toString().toCharArray();
int len = chArr.length;
str.setLength(0); //清空StringBuffer缓冲区
int i = 0;
while(i < len) {
if(chArr[i] == ' ') {
str.append('%');
str.append('2');
str.append('0');
} else {
str.append(chArr[i]);
}
i++;
}
return str.toString();
}
}
还有一种方法:先比那里一遍字符串,求得空格的数量count。创建一个char[]数组,长度为(str.length+count*3)。定义两个指针p1,p2,分别指向字符串的末尾和数组的末尾,从后往前遍历字符串,从后往前给数组赋值,p1遇到非空格直接把对应字符赋给数组p2所指(p1,p2都要-1);p1遇到空格,分别给p2赋值'0','2','%'(每赋值一个就p2--),p1--, p2=p2-3。