Java String、StringBuilder、StringBuffer、StringTokenizers

String一旦设置就无法更改。如果更改,则会额外消耗。

StringBuffer(线程安全)和StringBuilder(效率高)

 

String:

public class StringTest {
    public static void main(String args[] ){
        parameterTest();
        String test="123";String test1="456";
        show(test.concat(test1));
    }
    public static void show(String s) {
        System.out.println(s);
    }
    
    public static void parameterTest() {
        //String 无参数
        String nopara="parameterNoNeeded";
        show(nopara);
        String nopara1=new String("hello");
        show(nopara1);
        
        //String(byte[] byte,[int off-set],[int length])构造方法
        byte[] bt= {115,67,123,46,88,122};
        String bytePara=new String(bt);
        String bytePara1=new String(bt,2,3);
        show(bytePara);show(bytePara1);
        
        //String(char[] char,[int off-set],[int length])构造方法
        char[] ct= {'i','w','i','n','t','h','i','s'};
        String charPara=new String(ct);
        String charPara1=new String(ct,3,2);
        show(charPara);show(charPara1);
    }
}

String常用

 

 

 

 

 

 

 

StringBuilder

public class StringBuilderTest {
    public static void main(String args[]) {
        //可改变的字符串
        StringBuilder sb=new StringBuilder();//16个字符的默认SB对象
        StringBuilder sb12=new StringBuilder(12);//12个字符
        StringBuilder sbstr=new StringBuilder("Hello");//str+16个字符大小的SB对象
        
        //StringBuilder常用方法
        sb.append("Hello,World!");show(sb);    //append()
        sb12.append(sb,3,7);show(sb12);
        sb.delete(3,7);show(sb);            //delete(begin,end)
        sb.insert(3,true);show(sb);            //insert(offset,基本类型c)
        sb.replace(0, 1, "D");show(sb);        //replace(start, end, str)
        sb12.reverse();show(sb12);            //reverse()翻转
        show(sb.capacity());show(sb.length())//方法capacity()\length()
        sbstr.setLength(12);                //setLength()重新设置长度
        
        sb.charAt(5);    //第i个字符的位置
        char []c=new char[3];
        sb.getChars(0, 2, c, 0);//复制,getChars(Begin, End, char[]src, srcBegin);从begin到End-1的位置
        sb.setCharAt(1, 'g');//更换字符
    }
    public static void show(StringBuilder s) {
        System.out.println(s);
    }
    public static void show(int i) {
        System.out.println(i);
    }
}

 

StringTokenizer类:在util包中

public class StringTokenizerTest {
    public static void main(String args[]) {
        String s="This%is!the$way#we@work";
        String delim="%!$#@";
        StringTokenizer st=new StringTokenizer(s);
        StringTokenizer stWithDelim=new StringTokenizer(s,delim);
        StringTokenizer st2=new StringTokenizer(s,delim,true);    //保留delim在其中
        
        System.out.println(st.countTokens());    //countTokens()
        while(st.hasMoreTokens()) {                //hasMoreTokens()
            System.out.println(st.nextToken());    //nextToken()
        }
        System.out.println();
        while(stWithDelim.hasMoreTokens()) {                
            System.out.println(stWithDelim.nextToken());    
        }
        while(st2.hasMoreTokens()) {                
            System.out.println(st2.nextToken());    
        }
    }
}

 

posted @ 2020-10-16 01:44  浪里薯条  阅读(143)  评论(0)    收藏  举报