版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zcawesome/article/details/80172823
String类创建初始化后对于其的修改都要创建一个新的对象,但是StringBuffer与StringBuilder就解决了这个问题。
对于StringBuffer与StringBuilder的区别在于StringBuilder 的方法不是线程安全的(不能同步访问),但是StringBuilder的速度快于StringBuffer,所以在不要求线程安全的情况下优先使用StringBuilder。
StringBuffer的很多方法都与String类差不多,下面着重总结一下几个常用的方法:
s.append(要加的东西,int,char,string ...) | 将指定的字符串追加到此字符序列。 |
s.reverse() | 反转字符串 |
s.delete(int start, int end) | 删除【start,end)间的字符 |
s.insert(int index, int i) | 在index位置插入字符 |
s.replace(int start, int end, String str) | 将【start,end)间的字符替换成str |
下面是使用举例:
package test;
public class Buffer {
public static void main(String[] args) {
StringBuffer s1=new StringBuffer("Hello ");
StringBuffer s3=new StringBuffer("123456789");
s1.append("the ");
s1.append("world! ");
StringBuffer s6=new StringBuffer(s1);
System.out.println(s1);
//char []s2= "How are you ? ";错误
String s2="How are you ? ";
s1.append(s2);
System.out.println(s1);
s1.reverse();//倒序输出
System.out.println(s1);
s3.insert(4,666666);//在此序号的位置插入
System.out.println(s3);
s3.deleteCharAt(2);//序号从零开始
System.out.println(s3);
s3.delete(2, 6);//从第二号开始到第6号前一位截止
System.out.println(s3);
s6.replace(0,3,"H");//从零到2也是左闭右开区间,相比于insert方法这个不管后面替换成的字符串有多长都把区间内的字符串替换掉!
System.out.println(s6);
s6.toString();
System.out.println(s6);
}
}
输出结果为:
Hello the world!
Hello the world! How are you ?
? uoy era woH !dlrow eht olleH
123466666656789
12466666656789
1266656789
Hlo the world!
Hlo the world!
注意:这里给定一个范围都是指
左闭右开区间。