StringBuilder的用法

  • Post author:
  • Post category:其他


StringBuilder可看作是一个容器,其内容是可以改变的

作用:提高字符串的操作效率

例如:

String s1 = new String("aaa");
String s2 = new String("bbb");
String s3 = new String("ccc");
String s = s1 + s2 + s3;

以这种方式创建字符串s,在创建过程中由于有字符串的拼接,从左到右,s1与s2拼接过程中产生一个新的字符串,再与s3拼接再产生新字符串。在耗费时间的过程中也同样耗费着内存。而StringBuilder则是直接作用于字符串本身,并不会产生新的字符串,因此能够提高字符串的操作效率。

创建方法:

分为空参构造以及有参构造

1.无参创建

StringBuilder sb = new StringBuilder();

2.创建时添加初始字符串

StringBuilder sb2 = new StringBuilder("abc");

3.创建时添加初始长度

StringBuilder sb3 = new StringBuilder(10);

常用方法:


1. public StringBuilder append(任意数据)  //添加数据,并返回对象本身

        sb.append(1);
        sb.append(2.0);
        sb.append(true);
        sb.append("abc");
        System.out.println(sb);//结果为12.0trueabc


2. public StringBuilder reverse()   //反转容器中的内容

        sb.append(123);
        sb.reverse();
        System.out.println(sb);//结果为321


3.public int length()    //返回长度(字符出现的个数)

        sb.append(123);
        sb.append("abc");
        System.out.println(sb.length());//结果为6


4.public String toString()    //通过toString可以实现把StringBuilder转化为String

        sb.append(123);
        sb.append("abc");
        String str = sb.toString();
        System.out.println(str);//结果为123abc


5.public StringBuilder insert(int index, 任意类型)   //将数据插入容器中的指定位置

        sb.append(123);
        sb.insert(1,4);
        System.out.println(sb);//结果为1423    


6.public StringBuilder delete(int begin, int end);   //删除指定范围内的数据(左闭右开)

        sb.append(123456);
        sb.delete(1,3);
        System.out.println(sb);//结果为1456


7.public StringBuilder deleteCharAt(int index)   // 删除指定位置的数据

        sb.append(123);
        sb.deleteCharAt(2);
        System.out.println(sb);//结果为12

链式操作:

由于StringBuilder其中某些用法的返回类型仍为StringBuilder,(例如append,reverse等)

因此,可以进行循环调用,例如:

        StringBuilder sb = new StringBuilder();
        sb.append(123);
        sb.append("abc");
        sb.append(true);
        int n = sb.length();
        System.out.println(n);//结果为10


        StringBuilder sb1 = new StringBuilder();
        int n1 = sb1.append(123).append("abc").append(true).length();
        System.out.println(n1);//结果仍为10

总结:

StringBuilder主要用于两种情况


1.需要多次进行字符串拼接


2.需要进行字符串反转



版权声明:本文为weixin_64793514原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。