常用方法:
StringBulider性能好的原因:(s3指向的是004 ,前面的对象都会被回收)
普通字符串拼接: 每+一次产生一个对象
使用StringBulider方法:只会产生一个对象,在一个对象里面拼接
代码块实例:
package com.itheima.d11_api_stringbulider;
/**
* 目标:学会使用StringBulider操作字符串,最终还需要知道它性能好的原因
*/
public class StringBuilderDemo1 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder(); // 默认是 ""
sb.append("a"); // 字符串拼接
sb.append("b");
sb.append("c");
System.out.println(sb); // 输出 abc
StringBuilder sb1 = new StringBuilder();
// 支持链式编程
sb1.append("1").append("2").append("3");// 源码中有return this; 所以每次添加完对象会返回给该对象继续拼接
System.out.println(sb1);
// 反转 reverse方法
sb1.reverse().append("110"); // sb1 = 123; 反转后321 然后返回给对象继续添加110 结果喂321110
System.out.println(sb1);
System.out.println(sb1.length()); // 输出字符串的长度
// 注意:StringBuilder只是拼接字符串的手段,效率好
// 最终目的还是要恢复成String类型
StringBuilder sb2 = new StringBuilder();
sb2.append("123").append("456");
// check(sb2); // 直接传入实参会报错,说明sb2不是String类型
// 恢复成String类型
String rs = sb2.toString(); // 已经默认重写了toString返回的就是字符串内容
check(rs); // 这样就能传入字符串实参了
}
public static void check(String data){
System.out.println(data);
}
}