测试可变字符序列 stringBuilder(线程不安全,效率高,一般用),stringBuffer(线程安全,效率低)
stringBuilder,stringBuffer和string的区别前者可变,后者不可变,因为后者类中用的是final,定死了
1 public class Test01 { 2 public static void main(String[] args){ 3 4 StringBuilder sb=new StringBuilder();//创建了初始长度为16的字符数组 5 StringBuilder sb1=new StringBuilder(32);//初始长度为32; 6 StringBuilder sb2=new StringBuilder("abcd");//初始长度为32,value[]={‘a‘,‘b‘,‘c‘,‘d‘,\u0000,\u0000...} 7 8 } 9 }
StringBuilder中的常用方法;
public class Test02 { public static void main(String[] args){ StringBuilder ss2=new StringBuilder("akjlfksjfkwnsh"); ss2.reverse(); System.out.println(ss2);//反置字符串 StringBuffer sb=new StringBuffer(); StringBuilder sb2=new StringBuilder("abcd"); sb2.append("efg");//累加作用,字符串长度变了相当于输出变成了abcdefg sb2.append(true).append(321).append("随便");//append中通过return this返回本字符串实现方法链. System.out.println(sb2); StringBuilder gh=new StringBuilder("a"); for(int i=0;i<15;i++){ gh.append(i); } System.out.println(gh);/**应该是后面接了1到100的数;StringBuilder里在碰到字符不够的时会自己换一个 新字符数组,扩展字符数组的长度(b=a*2+2),老数组会被回收,数组扩容!!!**/ //StringBuilder中delete方法,把数组从start字符到end字符的东西删掉输入是索引 StringBuilder ss=new StringBuilder("abdkagdasjkbfkugfkjasbuifgsjgfsbui"); ss.delete(3, 7);//这个也是可以方法链的(StringBuilder里的很多方法都可以方法链)这里可以delete(3,5).delete(3,5)... System.out.println(ss);//消去了dkag四个字符; } }