1.题目
把字符串中的空格,替换为“%20”。
2.思路
声明一个StringBuffer变量,StringBuffer变量是可以修改的,利用StringBuffer的charAt()方法对字符进行检测,如果是空格则替换为“%20”,如果非空格,则直接附加在StringBuffer变量末尾。
3.代码
public class Solution {
public String replaceSpace(StringBuffer str) {
StringBuffer out = new StringBuffer();
for(int i=0;i<str.toString().length();i++){
char b=str.charAt(i);
if(String.valueOf(b).equals(" ")){
out.append("%20");
}
else
out.append(b);
}
return out.toString();
}
}
4.拓展
String与 StringBuffer、StringBuilder的区别:
1. String为字符串常量,StringBuffer、StringBuilder为字符串变量
2.String是不可以修改的,每次对它的操作都会产生新的对象,而StringBuffer和StringBuilder是可以修改的,这就不会浪费内存
3.StringBuffer和StringBuilder相比是线程安全的(可以同步访问),但是StringBuilder的速度有优势。