StringBuffer类
String类创建的对象是无法修改的,所以每一次变动字符串中的内容都需要重新创建一个String对象,这样就会让字符串的操作变得很慢,而且也会浪费大量的内存空间。为了解决这个问题,出现了StringBuffer类。
创建StringBuffer类
StringBuffer A = new StringBuffer();
StringBuffer B = new StringBuffer("abc");
StringBuffer C = new StringBuffer(32);
StringBuffer D = new StringBuffer(new String("abc"));
System.out.println(A);//
System.out.println(B);//abc
System.out.println(C);//
System.out.println(D);//abc
需要注意的是,StringBuffer无法像String那样用直接赋值字符串常量的方式创建。
常用方法
追加字符序列
StringBuffer A = new StringBuffer();
A.append("12345");
System.out.println(A);//12345
A.append("abcdefg",2,3);
System.out.println(A);//12345c
修改指定索引处的字符
StringBuffer A = new StringBuffer("hello");
A.setCharAt(2,'3');
System.out.println(A);//he3lo
插入字符串
StringBuffer A = new StringBuffer("hello");
A.insert(2,"123");
System.out.println(A);//he123llo
字符串反序
StringBuffer A = new StringBuffer("hello");
System.out.println(A.reverse());//olleh
删除子字符串
StringBuffer A = new StringBuffer("hello");
A.delete(1, 2);
System.out.println(A);//hllo
StringBuilder类
操作上与StringBuffer类一样,但不保证线程同步,所以速度比StringBuffer类更快。