替换字符串
题目描述:
请实现一个函数,将一个字符串中的每个空格替换成 %20。例如,当字符串为 We Are Happy,则经过替换之后的字符串为 We%20Are%20Happy。
具体思路:
- 1 .遍历原字符串,遇到空格,则在原字符串末尾append两个空格
- 2 .使用指针p指向原字符串末尾,指针q指向现字符串末尾
- 3 . p,q同时从后向前遍历,当p指向空格是,q指针添加%20,若不是空格,则直接appendp指向的字符
具体代码
public String replaceSpace(StringBuffer str) {
if(str==null || str.length()==0) {
return str.toString();
}
int len = str.length();
for(int i=0;i<len;i++) {
if(str.charAt(i)==' ') {
str.append(" ");
}
}
int p = len - 1; //指向原字符串末尾
int q = str.length() - 1; //指向现字符串末尾
while(p>=0) {
char ch = str.charAt(p--);
if(ch==' ') {
str.setCharAt(q--, '0');
str.setCharAt(q--, '2');
str.setCharAt(q--, '%');
}else {
str.setCharAt(q--, ch);
}
}
return str.toString();
}