StringBuilder
- StringBuilder 代表可变字符串对象,相对于是一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的
- 好处:StringBuilder 比 String 更适合做字符串的修改操作,效率会更高,代码也会更简洁
- 注意:如果操作字符串较少,或者不需要操作,以及定义字符串变量,还是建议用 String
public class Test {
public static void main(String[] args) {
StringBuilder s1 = new StringBuilder();
StringBuilder s2 = new StringBuilder("Jack");
s2.append(666);
s2.append("Java");
s2.append(true);
System.out.println(s2);
s1.append(520).append("Java").append("哈哈哈");
System.out.println(s1);
s1.reverse();
System.out.println(s1);
System.out.println(s2.length());
String s = s1.toString();
System.out.println(s2);
}
}
StringBuffer
- StringBuffer 的用法与 StringBuilder 是一模一样的
- 但是 StringBuilder 是线程不安全的,StringBuffer 是线程安全的
- StringBuffer 的使用和上面的方法一模一样,因而此处不再赘述。
StringJoiner
- StringJoiner 是 JDK 8 才开始有的,跟 StringBuilder 一样,也是用来操作字符串的,也可以看成是一个容器,创建之后里面的内容是可变的
- 好处:不仅能提高字符串的操作效率,并且在有些场景下使用它操作字符串,代码会更简洁
import java.util.StringJoiner;
public class Test {
public static void main(String[] args) {
StringJoiner s1 = new StringJoiner(",");
s1.add("Java1");
s1.add("Java2");
s1.add("Java3");
System.out.println(s1);
StringJoiner s2 = new StringJoiner(",", "{* ", " *}");
s2.add("string1");
s2.add("string2");
s2.add("string3");
System.out.println(s2);
}
}