题目描述:将字符串中的空格替换成"%20"。
解法一:重新开辟一个字符串进行替换
public String replaceSpace(StringBuffer str) {
StringBuilder newStr = new StringBuilder();
for(int i=0;i<str.length();i++){
if(str.charAt(i)==' '){
newStr.append('%');
newStr.append('2');
newStr.append('0');
}else{
newStr.append(str.charAt(i));
}
}
return newStr.toString();
}
解法二:在当前字符替换,从后往前。
public String replaceSpace(StringBuffer str) {
int p1 = str.length() - 1;
for(int i = 0; i <= p1; i++){
if(str.charAt(i) == ' '){
str.append(" ");
}
}
int p2 = str.length() - 1;
while(p1 >= 0 && p2 > p1){
char c = str.charAt(p1--);
if(c == ' '){
str.setCharAt(p2--, '0');
str.setCharAt(p2--, '2');
str.setCharAt(p2--, '%');
}else{
str.setCharAt(p2--, c);
}
}
return str.toString();
}