测试可变字符序列stringBuilder

测试可变字符序列 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四个字符;
    }
}

 

posted @ 2018-03-16 23:06  myErebos  阅读(288)  评论(0编辑  收藏  举报