Java StringBuilder方法
String中字符串的内容是不可变的(因为字符串底层是一个用final修饰的数组),变的是栈中引用对象的地址值,这就导致我们重新给字符串赋值时,就会在内存中再产生一个新的字符串,导致了内存的浪费
在API中对String类有这样的描述:字符串是常量,它们的值在创建后不能被更改.
为了解决这个问题java引入了StringBuilder数组
什么是StringBuilder?
它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容
构造方法
public StringBuilder():构造一个空的StringBuilder容器。
public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去
常用方法
public StringBuilder append(…):添加任意类型数据的字符串形式,并返回当前对象自身。
public String toString():将当前StringBuilder对象转换为String对象。
示例
public class Main {
public static void main(String[] args) {
StringBuilder stringBuilder = new StringBuilder();
//添加字符串到末尾
stringBuilder.append("abc");
System.out.println(stringBuilder);
//转换为字符串
String string = stringBuilder.toString();
System.out.println(stringBuilder);
}
}
结果
链式编程
public class Main {
public static void main(String[] args) {
StringBuilder stringBuilder = new StringBuilder();
//添加字符串到末尾
stringBuilder.append("abc");
System.out.println(stringBuilder);
//转换为字符串
String string = stringBuilder.toString();
System.out.println(stringBuilder);
String string1 = stringBuilder.append("abc").append("def").toString();
System.out.println(string1);
}
}
链式编程
一次性调用append方法与tostring方法
以上就是StringBuilder方法的基本内容,如有错误还请各位指出,喜欢我的可以关注我哦