StringBuilder概述- Java.lang.StringBuilder
- StringBuilder是一个可变的字符串类,能够看作是字符串缓冲区,能够进步字符串的操纵服从(算作一个少度能够变更的字符串),底层也是一个数组,可是出有被final润饰,能够改动少度
- StringBuilder正在内乱存中一直是一个数组,占用空间少,服从下,假如超越了StringBuilder的容量,会主动扩容。
取String的机能比照
|
public class testStringBuilder { public static void main(String[] args) { testString(); testStringBuilder(); } public static void testString(){ String s = ""; long start = System.currentTimeMillis(); // 获得1970年1月1日0时0分0秒 到当前工夫阅历过的的毫秒值 for (int i=1;i<=50000;i++){ s +=i; } long end = System.currentTimeMillis(); System.out.println("String=>" + " " + (end-start)); } public static void testStringBuilder(){ StringBuilder stringBuilder = new StringBuilder(); long start = System.currentTimeMillis(); // 获得1970年1月1日0时0分0秒 到当前工夫阅历过的的毫秒值 for (int i=1;i<=50000;i++){ stringBuilder.append(i); } long end = System.currentTimeMillis(); System.out.println("StringBuilder=>" + " " + (end-start)); }}挨印成果:String=> 3780StringBuilder=> 2注:+号运算符 对字符串拼接时分会发生渣滓字符串 招致内乱存变年夜,再Java底层中会new StringBuilder挪用append()完成字符串拼接,再挪用toString()办法返回字符串,一个减号,堆内乱存中俩个工具。 机关办法- StringBuilder():机关一个没有带任何字符的字符串天生器,其初初容量为16个字符。
- StringBuilder(String str):机关一个字符串天生器,并初初化为指定的字符串内乱容
public class CreateStringBuilder { public static void main(String[] args) { // StringBuilder():机关一个没有带任何字符的字符串天生器,其初初容量为16个字符。 StringBuilder stringBuilder = new StringBuilder(); System.out.println(stringBuilder); // StringBuilder(String str):机关一个字符串天生器,并初初化为指定的字符串内乱容 StringBuilder stringBuilder1 = new StringBuilder("abc"); System.out.println(stringBuilder1); }}
经常使用办法- public StringBuilder append(...):增加随便范例数据的字符串情势,并返回当前工具本身;
注:
append办法返回的是this。
append的办法无序返回值。 - public String toString():将当前StringBuilder工具转换为String工具
注:
String战StringBuilder能够相互转换:
String->StringBuilder:可使用StringBuilder的机关办法
StringBuilder->String:可使用StringBuilder中的toString办法 - public StringBuilder reverse() 返回相反的字符序列
- public int length() 返回少度(字符呈现的个数)
public class StringBuilderMethod { public static void main(String[] args) { StringBuilder stringBuilder = new StringBuilder(); // public StringBuilder append(...):增加随便范例数据的字符串情势,并返回当前工具本身; stringBuilder.append(123); stringBuilder.append("abc"); stringBuilder.append(true); StringBuilder stringBuilder1 = stringBuilder.append('s'); StringBuilder stringBuilder2 = stringBuilder.append(12314.123); System.out.println(stringBuilder); System.out.println(stringBuilder1 == stringBuilder2); // 返回当前工具本身 // 链式编程:假如一个办法返回得是一个工具,工具就能够持续背下挪用办法 stringBuilder2.append("连").append("式").append("编").append("程"); System.out.println(stringBuilder); // result=> 123abctrues12314.123 // result=> true // 123abctrues12314.123连式编程 // public StringBuilder reverse() 返回相反的字符序列 stringBuilder.reverse(); System.out.println(stringBuilder); // 程编式连321.41321seurtcba321 //public int length() 返回少度(字符呈现的个数) System.out.println(stringBuilder.length()); // public String toString():将当前StringBuilder工具转换为String工具 System.out.println(stringBuilder.toString()); }}
StringBuilder战String得区分- String:内乱容是不成改动的
- StringBuilder:内乱容是可变的
|