StringBuilder
1、简述:
java.lang.StringBuilder
1、StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
2、StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
3、它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。
4、StringBuilder会自动维护数组的扩容。(默认16字符空间,超过自动扩充)
2、String字符串拼接问题
因为String类的字符串是常量,它们的值在创建后不能被更改,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。会创建多个为无用对象,占用内存资源。
示例:
public class Demo {
public static void main(String[] args) {
String s = "Hello";//会创建一个对象
s += "World";//拼接之后会重新创建一个新对象,指针最终指向新对象
System.out.println(s);
}
}
如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。为了解决这一问题,可以使用
java.lang.StringBuilder
类进行拼接。
3、常用构造方法
-
public StringBuilder()
:构造一个空的StringBuilder容器。 -
public StringBuilder(String str)
:构造一个StringBuilder容器,并将字符串添加进去
4、常用方法
public StringBuilder append(...)
:添加任意类型数据的字符串形式,并返回当前对象自身。public StringBuilder reverse()
:返回反转的字符序列public String toString()
:将当前StringBuilder对象转换为String对象。
示例:
public class StringBuilderDemo01 {
public static void main(String[] args) {
//创建StringBuilder对象
StringBuilder sb = new StringBuilder();
//调用方法进行拼接
sb.append("hello").append("world").append("java");
System.out.println(sb);
System.out.println("--------");
//返回相反的字符序列
sb.reverse();
System.out.println(sb);
System.out.println("--------");
//将当前StringBuilder对象转换为String对象。
String str = sb.toString();
System.out.println(str);
}
}
5、StringBuilder和String相互转换
-
StringBuilder转换为String
`public String toString()`:通过 toString() 就可以实现把 StringBuilder 转换为 String
-
String转换为StringBuilder
public StringBuilder(String s)
:通过构造方法就可以实现把 String 转换为 StringBuilder
示例:
public static void main(String[] args) {
//创建一个String对象
String s = "hello";
//通过构造方法可以实现把 String 转换为 StringBuilder
StringBuilder sb = new StringBuilder(s);
System.out.println("这是StringBuilder对象:"+sb);
System.out.println("--------");
//通过 toString() 就可以实现把 StringBuilder 转换为 String
s = sb.toString();
System.out.println("这是String对象:"+s);
}