ApiDay001 __02 Java_StringBuilder


Java 核心API

StringBuilder

String 类型的连接性能不好,Java提供了StringBuilder解决字符串连接性能问题。

简单理解 StringBuilder性能好!(重点!)

点击查看代码
String s1 = "ABC";
String s2 = "def";
String s3 = s1 + s2;

字符串连接性能测试:

点击查看代码 ```java String str = ""; long t1 = System.currentTimeMillis(); for(int i=0; i<50000; i++){ str = str + "A"; } long t2 = System.currentTimeMillis(); System.out.pritnln(t2 - t1); ```

StringBuilder 用于提升String字符串的连接性

  • StringBuilder称为可变字符串
  • StringBuilder内部也是字符数组, 其API可以直接修改其内部数组的内容
  • 当数组容量不足时候, 会自动扩容
  • 运算期间会尽力减少创建数组的数量。
点击查看代码
package string;

public class StringBuilderDemo03 {
    public static void main(String[] args) {
        /*
         * 测试StringBuilder的连接性能
         */
        StringBuilder buf = new StringBuilder();
        long t1 = System.currentTimeMillis();
        for (int i =0; i<50000; i++){
            buf.append("A");
        }
        long t2 = System.currentTimeMillis();
        System.out.println(t2-t1);
    }
}

StringBuilder API

点击查看代码 ```java buf-> char[]{A, C, B, 0, 0, 0, 0, 0, 0, 0, 0...0} // 0 1 2 3 4 5 StringBuilder buf = new StringBuilder(); buf.append("A") .append("A") .append("A") .append("B") .insert(1,"C") .delete(2,4); Stirng str = buf.toString(); ```
  • append() 追加, 在StringBuilder的后面添加字符,当容量满了,会自动扩容, 扩容规则 1倍+2;
  • insert(位置,字符) 插入字符;
  • delete(开始位置, 结束位置): 删除一定范围的字符,包括开始,不包括结束
  • replace():替换
  • reverse():翻转
  • StringBuilder的API返回的大多是当前对象,可以连续使用.调用方法。
  • toString() 方法可以讲StringBuilder转换为String