类StringBuilder

Posted wurengen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类StringBuilder相关的知识,希望对你有一定的参考价值。

StringBuilder概述

因为字符串的底层是一个被final修饰的数组,不能改变,是一个常量。所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。由此可知,如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。为了解决这一问题,可以使用`java.lang.StringBuilder`类。StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。(默认16字符空间,超过自动扩充)

常用构造方法有2个:

  • public StringBuilder():构造一个空的StringBuilder容器。
  • public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去。

常用的方法有2个:

  • public StringBuilder append(...):添加任意类型数据的字符串形式,并返回当前对象自身。
  • public String toString():将当前StringBuilder对象转换为String对象。

注意

StringBuilder对象和String对象是可以相互转换的。

代码举例:

package demo04;

public class StringBuilderTest {
    public static void main(String[] args) {
        // 创建一个容器对象,里面的数据为空
        StringBuilder stringBuilder1 = new StringBuilder();
        // 创建一个容器对象,里面的数据可以通过构造方法指定(  String对象转换为StringBuilder对象。)
        StringBuilder stringBuilder2 = new StringBuilder("你好啊");
        //append方法具有多种重载形式,可以接收任意类型的参数。任何数据作为参数都会将对应的字符串内容添加到StringBuilder中。
        stringBuilder2.append(1);
        stringBuilder2.append(‘A‘);
        //链式编程 调用一个方法后,返回一个对象的情况。然后使用返回的对象继续调用方法。
        stringBuilder2.append("A").append(true).append(new int[]{1, 2, 3, 4, 5});
        //将当前StringBuilder对象转换为String对象。
        String s = stringBuilder2.toString();
        System.out.println(s);
    }
}

执行结果

技术图片

 

以上是关于类StringBuilder的主要内容,如果未能解决你的问题,请参考以下文章

自定义StringBuilder类拼接非空字符串

StringBuilder

第3章 StringBuilder类

StringBuffer 和 StringBuilder 类

Java StringBuffer 和 StringBuilder 类

Java StringBuffer和StringBuilder类