Java StringBuilder类构造方法,和String类的相互转换。

1、StringBuilder类的原理

String类:
字符串是常量,它们的值在创建之后不能改变。
字符串的底层是一个被final修饰的数组,不能改变,是一个常量。
进行字符串的相加,内存中就会有多个字符串,占用空间多,效率低下。
StringBuilder类(字符串缓冲区,可以提高字符串的操作效率)
看成一个长度可以变化的字符串,底层也是一个数组,但是没有被final修饰,可以改变长度。
StringBuilder在内存中始终是一个数组,占用的空间少,效率高,如果超过了StringBuilder的容量,会自动扩容。

2、构造方法

java.lang.StringBuilder类,字符串缓冲区,苦提高字符串的效率。
构造方法:
—public StringBuilder() :构造一个空的StringBuilder容器。
—public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去。

public static void main(String[] args) {
    
    
    StringBuilder str1 = new StringBuilder();
    System.out.println("str1:" + str1); //str1:

    StringBuilder str2 = new StringBuilder("abccc");
    System.out.println("str2:" + str2); //str2:abccc
}

在这里插入图片描述

3、常用方法

StringBuilder的常用的方法有两个:
—public StringBuilder append(…):添加任意类型数据的字符串形式,并返回当前对象自身
参数:可以是任意的数据类型。
append方法返回的是this,调用方法的对象str1。

public static void main(String[] args) {
    
    
    //成员方法
    //创建对象
    StringBuilder str1 = new StringBuilder();
    StringBuilder str2 = str1.append("abccc");
    System.out.println(str1);
    System.out.println(str2);

    //使用append方法无需接收返回值
    str1.append("def");
    str1.append(1);
    str1.append(true);
    str1.append('中');
    System.out.println(str1);
}

在这里插入图片描述
链式编程:方法返回值是一个对象,可以根据对象继续调用方法。
例如:

str1.append("def").append(1).append(true).append('中');

—public StringBuilder. reverse():反转当前对象。

—public String toString() :将当前StringBuilder对象转换为String字符串对象。

3、StringBuilder和String的转换

String—>StringBuilder,可以使用StringBuilder的构造方法。
StringBuilder(String str)构造一个字符串生成器,并初始化为指定的字符串内容。
StringBuilder—>String,可以使用StringBuilder中的toString方法
public String toString() :将当前StringBuilder对象转换为String字符串对象
代码演示:

public static void main(String[] args) {
    
    
    //String—>StringBuilder
    String str = "hello";
    System.out.println("str:" + str);
    StringBuilder str1 = new StringBuilder(str);
    str1.append(123).append("中国");
    System.out.println("str1:" + str1);

    //StringBuilder—>String
    String s = str1.toString();
    System.out.println(s);
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Gaoju12138/article/details/109387138