StringBuilder是一个可变的字符序列,允许内容的更改,在类中提供了修改私有成员变量的方法,与String不同的是,不仅字符串内容可以更改,字符串的长度也可以变化

StringBuilder构造方法

  • StringBuilder():空参构造,默认生成一个大小为16的空字符组
  • StringBuilder(String str):使用指定的字符串初始化时,整个StringBuilder对象的长度为str.length() + 16
  • StringBuilder(int capacity):通过参数指定数组的大小
  • 获取容积的方法:capacity() 获取当前容器的大小
  • length():获取当前容器的字符的个数

    1. /**
    2. * StringBuilder构造方法演示
    3. */
    4. public class StringBuilderConstruction {
    5. public static void main(String[] args) {
    6. // 空参构造
    7. StringBuilder str1 = new StringBuilder();
    8. System.out.println(str1.capacity());// 16// str1.length() = 0
    9. // 传入字符串
    10. String s = "你好";
    11. System.out.println(s.length()); // 2
    12. StringBuilder str2 = new StringBuilder(s);
    13. System.out.println(str2.capacity()); // s.length() + 16 = 18
    14. System.out.println(str2.length()); // 2
    15. // 设定容量
    16. StringBuilder str3 = new StringBuilder(4);
    17. System.out.println(str3.capacity()); // 4
    18. }
    19. }

    StringBuilder添加功能

  • append():向StringBuilder对象后面中添加任意类型数据

  • insert(int index, 任意类型):在指定的位置添加任意类型数据,注意index的取值分为为0—>缓冲区-1

    1. /**
    2. * append():在StringBuilder对象之后添加任意类型数据
    3. * insert(int index, 任意类型数据) :在指定位置添加任意类型数据,index范围0-->缓冲区-1
    4. */
    5. public class StringBuilderAppend_Insert {
    6. public static void main(String[] args) {
    7. StringBuilder str = new StringBuilder("12");
    8. // append()
    9. str.append(3);
    10. str.append("四");
    11. System.out.println(str); // 123四
    12. // insert()
    13. str.insert(1,"一"); // 1一23四
    14. System.out.println(str);
    15. }
    16. }

    StringBuilder删除功能

  • deleteCharAt(int index):指定删除元素的位置

  • delete(int start, int end):指定删除从start开始到end-1结束的范围

    1. /**
    2. * deleteCharAt(int index):指定删除一个元素
    3. * delete(int start, int end):指定删除start到end-1范围内的元素
    4. */
    5. public class StringBuilderDelete {
    6. public static void main(String[] args) {
    7. StringBuilder str = new StringBuilder("012345");
    8. // deleteCharAt()
    9. str.deleteCharAt(2);
    10. System.out.println(str); // 01345
    11. // delete()
    12. str.delete(1,3);
    13. System.out.println(str); // 045
    14. }
    15. }

    StringBuilder修改功能

  • replace(int start, int end, String str):把start开始到end-1结尾的内容替换为str

  • reverse():将元数据反转

    1. /**
    2. * replace(int start, int end, String str):替换
    3. * reserve():反转
    4. */
    5. public class StringBuilderReplace_Reserve {
    6. public static void main(String[] args) {
    7. // replace(int start, int end, String str)
    8. StringBuilder str = new StringBuilder("你好世界,你好java"); // 你好world,你好java
    9. str.replace(2,4,"world");
    10. System.out.println(str);
    11. // reserve()
    12. str.reverse();
    13. System.out.println(str); // avaj好你,dlrow好你
    14. }
    15. }