如果对String字符串进行拼接,每次拼接都会构建一个新的String对象,即耗时,又浪费空间。但我们可以通过java提供的 StringBuilder 类来解决这个问题。
String :内容是不可变的
StringBuilder:内容是可变的
构造方法:
方法名 | 说明 |
---|---|
public StringBuilder() | 创建一个空白可变字符串对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符串的内容,来创建可变字符串对象 |
StringBuilder 的添加和反转方法
方法名 | 说明 |
---|---|
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
public StringBuider reverse() | 返回相反的字符序列 |
例:
/*学习使用
public StringBuilder append(任意类型)
public StringBuider reverse()
*/
public static void main(String[] args) {
StringBuilder s1 = new StringBuilder("hello");
//追加字符(其它任意类型)
StringBuilder s2 = s1.append("world");
System.out.println("s1:"+s1);
System.out.println("s2:"+s2);
System.out.println("------------");
//字符串反转
StringBuilder s3 = s1.reverse();
System.out.println("s1:"+s1);
System.out.println("s3:"+s3);
System.out.println("------------");
//链式编程
StringBuilder s4 = new StringBuilder();
s4.append("hello").append("world").append(1314);
System.out.println("s4:"+s4);
}
输出:
s1:helloworld
s2:helloworld
------------
s1:dlrowolleh
s3:dlrowolleh
------------
s4:helloworld1314
StringBuilder 和 String 的相互转换
- StringBuilder 转换为 String
public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String
2.Stringr 转换为 StringBuilder
public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder
//学习 StringBuilder 和 String 的相互转换
public static void main(String[] args) {
//StringBuilder 转换为 String
StringBuilder s1 = new StringBuilder();
s1.append("hello");
String s2 = s1.toString();//String s2 = s1;是错误的
System.out.println("s2:"+s2);
//String 转换为 StringBuilder
String s3 = "hello";
StringBuilder s4 = new StringBuilder(s3);//StringBuilder s4 = s3;是错误的
System.out.println("s4:"+s4);
}
输出:
s2:hello
s4:hello