StringBuilder的介绍
- StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是StringBuilder对象的内容是可变的。
java.lang包下的类,无需导包。 - StringBuilder 是在一个对象中进行字符串的拼接,修改操作,性能较高。所以StringBuilder类适合做字符串的拼接\修改操作
- String类做字符串拼接和处理的时候的问题是:
每次拼接的时候都会放弃原来的字符串对象,而是重新指向一个新的字符串对象。 浪费内存,产生太多垃圾对象,创建新对象,指向新对象,所以String类不适合做字符串的拼接\修改操作。
StringBuilder的拼接案例:
public class StringBuilderDemo01 {
public static void main(String[] args) {
String name = "赵丽颖";//不可变字符串
name += "最美";
name += "女演员";
System.out.println(name);
StringBuilder sb = new StringBuilder();
sb.append("赵丽颖");
sb.append("最美");
sb.append("女演员");
System.out.println(sb);
}
}
StringBuilder的构造器
- public StringBuilder(); 创建一个操作空字符串的StringBuilder对象
- public StringBuilder(String name); 创建一个操作含有字符串的StringBuilder对象
StringBuilder有哪些功能
- public StringBuilder append(任意类型) 拼接新类容连接在对象后面
- public StringBuilder reverse() 把对象中的字符串进行反序
应用:
public class StringBuilderDemo02 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder(); //sb[""]
sb.append("赵丽颖");
sb.append("是演员");
System.out.println(sb);
StringBuilder sb1 = new StringBuilder("赵丽颖");
sb1.append("是演员");
System.out.println(sb1);
StringBuilder sb2 = new StringBuilder(); //sb[""]
sb2.append("赵丽颖").append("是").append("演员").append(12).append(true);//链式编程
System.out.println(sb2);
sb2.reverse();//对象内容反序
System.out.println(sb2);
}
}
StringBuilder转换成String
-
StringBuilder只是拼接操作字符串的手段。(手段)
-
开发中的字符串结果还是要赋值给String类型的(目的)
-
String转换成S tringBuilder直接append进去就好了
-
StringBuilder最终转换成String必须调用toString()方法
–public String toString()
案例:
public class StringBuilderDemo03 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("赵丽颖");
sb.append("是演员").append("123").reverse();
System.out.println(sb);
//开发中很多时候字符串的结果还是要赋值给String类型的
//StringBuilder() => String类型
String result = sb.toString();//把StringBuilder拼接的字符结果又转换成字符串类的数据
System.out.println(result);
test(result);//现在就可以调用test了,不然不行的不然是StringBuilder类型不是String类型
}
public static void test(String name){
}
}
注意:String类型的只能用String类型来接受,不可以用StringBuilder来接受必须要用toString转换格式。