String Builder类概述
java.lang .StringBuilder是个字符串Q的缓冲区,即它是一个容器.它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。
stringBuilder 会自动维护数组Q,进行扩容。(默认16字符空间,超过自动扩充)StringBuilder类构造方法
public stringBuilder():构造一个空的StringBuilder 容器。
public stringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去。
代码展示
public class demo01StringBuilder {
public static void main(String[] args) {
//使用无参构造
StringBuilder build1=new StringBuilder();
System.out.println(build1); //空白
//使用带参构造
StringBuilder build2=new StringBuilder("abc");
System.out.println(build2); //abc
}
}
StringBuilder类常用方法
append()方法
public StringBuilder append(...)
:添加任意类型数据的字符串形式,并返回当前对象自身。append
方法具有多种重载形式,可以接收任意类型的参数。任何数据作为参数都会将对应的字符串内容添加到StringBuilder
中。
代码展示
public class Demo02Append {
public static void main(String[] args) {
//append方法往StringBuilder中添加数据
//append方法返回的是this即调用方法的对象bu1
//创建对象
StringBuilder bu1 = new StringBuilder();
//使用append对象无需接受返回值,返回值就是本身
//append可以添加任何数类型
bu1.append("abc");
bu1.append(1);
bu1.append(true);
bu1.append(8.8);
bu1.append('中');
System.out.println(bu1); //abc1true8.8中
}
}
append方法也可以使用链式编程实现。
链式编程:方法的返回值是一个对象,可以根据对象继续调用方法 在我们开发中,会遇到调用一个方法后,返回一个对象的情况。然后使用返回的对象继续调用方法。这种时候,我们就可以把代码写在一起,如append方法一样,代码如下
// 链式编程
System.out.println("abc".toUpperCase().toLowerCase().toUpperCase());
bu1.append("abc").append(1).append(true).append(8.8).append('中');
System.out.println(bu1);
toString()方法
public String toString():将当前StringBuilder对象转换为String对象。备注: StringBuilder已经覆盖重写了Object当中的tostring方法。
【补充】
StringBuilder和string可以相互转换:
1 .string->StringBuilder:可以使用stringBuilder的构造方法public stringBuilder():构造一个空的StringBuilder 容器。
2. StringBuilder-->String :通过toString方法,StringBuilder对象将会转换为不可变的String对象。public string toString():将当前StringBuilder对象转换为Sting对象
代码展示
public class Demo03ToString {
public static void main(String[] args) {
//链式创建
StringBuilder sb=new StringBuilder("hello").append("world").append("java");
//调用方法
String str=sb.toString();
System.out.println(str); //helloworldjava
}
}