代码
public class Solution {
public String replaceSpace(StringBuffer str) {
String s = str.toString();
String s1 = s.replaceAll(" " ,"%20");
return s1;
}
}
知识点
1.String、StringBuffer和StringBuilder的区别
- String是字符串常量,StringBuffer和StringBuilder是字符串变量
- String不可变,因为String类被声明为final类;StringBuffer和StringBuilder可变,所以在本题中可直接对str(StringBuffer)中的字符进行更改。
- StringBuffer是线程安全的,而StringBuilder是非线程安全的,因为StringBuffer采用了 synchronized 关键字进行修饰,因此StringBuilder的效率要高
参考链接
2.toString()
返回值为String,所以要通过toString()方法将StringBuffer类型转变为String类型
toString()方法是Object类中的方法,所以所有对象都具有这个方法。
3.replaceAll()
public String replaceAll(String regex, String replacement)