StringBuilder概述
- StringBuilder是一个可变的字符串的操作类,我们可以把它看成是一个对象容器。
- 使用StringBuilder的核心作用:操作字符串的性能比String要更高(如拼接、修改等)。
代码演示:
public class d11_api_stringbuilder { public static void main(String[] args) { //添加数据并返回StringBuilder对象本身 StringBuilder sb = new StringBuilder(); sb.append("1"); sb.append("2"); sb.append("3"); sb.append("4"); sb.append("5"); System.out.println(sb); //支持链式编程 StringBuilder sb1 = new StringBuilder(); sb1.append("a").append("b").append("c").append("我爱你中国"); System.out.println(sb1); //将对象的内容反转 sb1.reverse().append("122"); System.out.println(sb1); //返回对象内容长度 System.out.println(sb1.length()); //注意:StringBuilder只是拼接字符串的手段:效率好 //最终目的还是要恢复成String类型。 StringBuilder sb2 = new StringBuilder(); sb2.append("123").append("456"); //恢复成String类型 String rs = sb2.toString(); check(rs); } public static void check(String data){ System.out.println(data); } }
为什么拼接、反转字符串建议使用StringBuilder?
- StringBuilder:内容是可变的、拼接字符串性能好、代码优雅。
- String :内容是不可变的、拼接字符串性能差。
- 定义字符串使用String
- 拼接、修改等操作字符串使用StringBuilder
案例:
实现代码如下:
public class StringBuilderTest2 { public static void main(String[] args) { int[] arr1 = null; System.out.println(toString(arr1)); int[] arr2 = {10,20,30}; System.out.println(toString(arr2)); } /** 定义方法接收任意整型数组,返回数组内容形式 */ public static String toString(int[] arr){ if (arr != null){ //2.开始拼接内容。 StringBuilder sb = new StringBuilder("["); for (int i = 0; i < arr.length; i++) { sb.append(arr[i]).append(i == arr.length - 1 ? "" : ","); } sb.append("]"); return sb.toString(); }else { return null; } } }