常用类04-StringBuffer类与StringBuilder类


StringBuffer类 与 StringBuilder类

String、StringBuffer、StringBuilder三者异同:

  • String:不可变的字符序列;底层结构使用char[]存储;效率最低

  • StringBuffer:可变的字符序列;线程安全,效率低;底层结构使用char[]存储

  • StringBuilder:可变的字符序列;jdk5.0新增,线程不安全,效率高;底层结构使用char[]存储

在开发过程中,建议使用StringBuffer(int capacity)或StringBuilder(int capacity)

StringBuffer类常用方法

  • StringBuffer append(xxx):

    提供了很多的append()方法,用于进行字符串拼接

  • StringBuffer delete(int start,int end):

    删除指定位置的内容

  • StringBuffer replace(int start,int end,String str):

    把[start,end)位置替换为str

  • StringBuffer insert(int offset,xxx):

    在指定位置插入xxx

  • StringBuffer reverse():

    把当前字符序列逆转

StringBuffer s1 = new StringBuffer("abc");
s1.append(1);
System.out.println(s1);
//abc1
s1.delete(2,4);
System.out.println(s1);
//ab1
s1.replace(1,2,"Hello");
System.out.println(s1);
//aHello
s1.insert(2,false);
System.out.println(s1);
//aHfalseello
s1.reverse();
System.out.println(s1);
//olleeslafHa
  • 其他方法

当append和insert时,如果原来value数组长度不够,可扩容