替换字符串中的空格 /剑指offer05
class Solution {
public String replaceSpace(String s) {
StringBuffer sb=new StringBuffer(s);
for(int i=0;i<sb.length();i++){
if(sb.charAt(i)==' '){
sb.replace(i,i+1,"%20");
}
}
return sb.toString();
}
}
String :final 不可修改
对字符串进行修改
在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
StringBuilder
StringBuffer
StringBuffer sBu = new StringBuffer("字符串1");
主要方法
-
public StringBuffer append(String s)
将指定字符串追加到原字符串序列后
sBu.append("字符串2")
-
public StringBuffer reverse()
将原字符串反转
sBu.reverse();
-
public delete(int start, int end)
移除原字符串中从start开始到end结束(包括start但不包括end)的子字符串
-
public insert(int offset, String str)
将数据插入原字符串中,offset为指定需要在字符串中插入数据的偏移值。第二个参数可以为整数、字符、字符串等类型。
StringBuffer sb = new StringBuffer("Welcome"); sb.insert(3, "1234"); System.out.println(sb); 输出结果:Wel1234come
-
replace(int start,int end,String str)
将原字符串中从start到end的子字符串替换成指定的字符串
String StringBuilder StringBuffer之间的装换
StringBuilder/StringBuffer ——> String :toString()方法
String ——> StringBuilder/StringBuffer :直接用构造方法