1、概念
1、StringBuilder是一个可变字符序列,因为append(插入字符)和insert(在字符串上插入字符串)在StringBuilder本身上操作,String本身长度不可变,所以要使用StringBuilder当存储器
2、构造方法:
(1)StringBuilder() 创建一个字符串生成器,初始容量为16
(2)StringBuilder(int capacity) 创建一个字符串生成器,初始容量由capacity指定
StringBuilder sb = new StringBuilder(10);//创建一个字符串生成器,给他初始容量为10
(3)StringBuilder(String str) 创建一个字符串生成器,初始化参数字符串。初始容量由16加字符串长度
StringBuilder sb = new StringBuilder("asd");//创建一个字符串生成器,在他原本的16容量上加上3,最终成19容量的字符串
(4)capacity()返回字符串生成器的容量
(5)length()返回字符串缓冲区中字符个数
StringBuilder sb = new StringBuilder("abcdf");
System.out.println(sb);
System.out.println(sb.capacity());//21
System.out.println(sb.length());//5
3、添加
append(任意类型):将任意类型的参数追加到当前可变字符序列之后
StringBuilder sb = new StringBuilder();//char[]
System.out.println(sb.capacity());//16
System.out.println(sb.length());//0
sb.append("abcd").append("efgh").append("ijkl").append("mnop");
sb.append("qrst");
System.out.println(sb.capacity());//34
System.out.println(sb.length());//20
System.out.println(sb);//abcdefghijklmnopqrst
2、insert(int index, 任意数据类型) 可以将任意数据类型插入到指定位置
StringBuilder sb = new StringBuilder("abcdefg");
//sb.insert(1, "XYZ");
sb.insert(7, "ZZZ");
System.out.println(sb);//输出:abcdefgZZZ
4、删除
1、deleteCharAt(int index) 删除字符串缓冲区中指定索引上的字符
2、delete(int start, int end) 删除字符串缓冲区上一段子字符串
同上 sb.deleteChar(需要删除的数组索引)
sb.delete(int start, int end) //取头不取尾
5、反转
1、sb.replace(int start, int end,"指定字符串") 使用指定字符串去替换字符串缓冲区中指定的子串
2、sb.reverse() 反转字符串缓冲区