JAVA学习之路之StringBuilder
。
StringBuilder概述
如果对字符串进行拼接操作,每次拼接,都会创建一个新的String对象,既耗时,又浪费内存空间,而这种操作又无法避免,我们可以通过Java提供的StringBuilder类来解决这个问题。
StringBuilder是一个可变得字符串类,我们可以把它看成是一个容器,这里的可变是指StringBuilder对象中的内容是可变的。
String和StringBuilder的区别
String:内容是不可变的
StringBuilder:内容是可变的
StringBuilder的构造方法
方法名 | 说明 |
---|---|
public StringBuilder() | 创建一个空白可变字符串对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符串内容,来创建可变字符串对象 |
StringBuilder的添加和反转方法
项目 | Value |
---|---|
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
public StringBuilder reverse() | 返回相反的字符序列 |
添加反转方法代码演示
public class StringBuilderDemo {
public static void main(String[] args) {
//创建对象
StringBuilder s = new StringBuilder();
//public StringBuilder append(任意类型):添加数据,并返回对象本身
StringBuilder s1 = s.append("hello");
System.out.println("s:"+s);
System.out.println("s1:"+s1);
System.out.println(s==s1);
StringBuilder s2 = new StringBuilder();
s2.append("hello");
s2.append("world");
System.out.println(s2);
//链式编程 调用对象后,对象也能调用append方法
StringBuilder s3 = new StringBuilder();
s3.append("hello").append("world");
//public StringBuilder reverse(),返回相反的字符序列
s.reverse();
s3.reverse();
System.out.println("s:"+s);
System.out.println("s3:"+s3);
}
}
运行结果:
s:hello
s1:hello
true
helloworld
s:olleh
s3:dlrowolleh
可以理解为对一个对象的反复操作
StringBuilder和String的相互转换
原因:String无法直接调用append和reserve方法,需要互相转换来实现。
1.StringBuilder转换为String
public String toString():通过toString就可把StringBuilder转化为String
2.String转换为StringBuilder
public StringBuilder(String s):通过构造方法实现把String转换为StringBuilder