StringBuffer

StringBuffer字符串緩衝區數組

它是是一個容器,
用於對數據的改變,包括存儲、刪除、獲取、修改app

特色:
一、長度是能夠變的
二、能夠直接操做多個數據類型
三、最終能夠經過toString()方法變成字符串spa


何時用StringBuffer
數據類型及個數不肯定,並且最終要變成字符串時code



一、存儲
StringBuffer append():數據添加到結尾
StringBuffer insert(index,數據):數據添加至index位置對象

 

二、刪除
StringBuffer delete(start,end):刪除緩衝區中的數據,包含start,不包含end
StringBuffer deleteCharAt(int):刪除緩衝區中指定位置的字符blog

 

三、獲取
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end) //返回的是String字符串


四、修改
StringBuffer replace(int start, int end, String str) :指定起始位置,替換成指定內容,含頭不含尾
void setCharAt(int index, char ch) //替換某一位置的字符get

 

五、反轉
StringBuffer reverse()
string

 

六、將StringBuffer中指定的數據存儲到字符數組中
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
ast

 

  

StringBuffer只是一個容器,任何數據的增刪改查,都是基於容器。

class StringBufferDemo
{
    public static void main(String[] args)
    {
        StringBuffer sb=new StringBuffer();  //建立一個空的StringBuffer
        StringBuffer sb1=sb.append(111);
        
        System.out.println("sb==sb1:"+(sb==sb1));  //true。sb和sb1是同一對象,這就是容器的意義
        System.out.println(sb);            //111
        System.out.println(sb1);        //111

    }
}

 

 

class StringBufferDemo
{
    public static void main(String[] args)
    {    
        method_add();
        method_del();
        method_update();
        method_rev();
        method_getChars();
    }

    public static void method_add()            //StringBuffer存儲操做
    {
        StringBuffer sb=new StringBuffer();    //建立一個空的容器
        
        sb.append(34);                        //append,末尾加整數34
        sop(sb.toString());                    //輸出:34。 toString(),轉成字符串。

        sb.append(true).append("====");        //方法調用鏈
        sop(sb.toString());                    //輸出:34true====

        sb.insert(2,"***");                    //insert,第2角標位處,加***
        sop(sb.toString());                    //輸出:34***true====
    }



    public static void method_del()            //StringBuffer刪除操做
    {
        StringBuffer sb=new StringBuffer("abcde");    

        sb.delete(1,3);            //刪除第一、第2角標的字符
        sop(sb.toString());        //輸出:ade
        
        //sb.delete(0,sb.length());        //清空緩衝區
        //sb.delete(1,2);            //刪除單個
        sb.deleteCharAt(1);            //刪除單個
        sop(sb.toString());        //輸出:ae
    }

    public static void method_update()        //StringBuffer修改操做
    {
        StringBuffer sb=new StringBuffer("abcde");    
        //sb.replace(1,4,"===");                //輸出:a===e。含頭不含尾
        sb.setCharAt(1,'G');                    //輸出:aGcde。角標1的字符替換成G。
        sop(sb.toString());                
    }
    
    public static void method_rev()            //StringBuffer反轉操做
    {
        StringBuffer sb=new StringBuffer("abcde");    
        sb.reverse();                            //輸出:edcba
        sop(sb.toString());    
    }

    public static void method_getChars()        //StringBuffer getChars操做
    {
        StringBuffer sb=new StringBuffer("abcdefg");
        
        char[]  chs=new char[6];            

        sb.getChars(1,4,chs,1);                    //將abcdefg中的下標一、二、3位,放到數組chs中,從下標1開始放
        
        for (int x=0;x<chs.length ;x++ )
        {
            sop("chs["+x+"]="+chs[x]);        

        }
        /*
        輸出:
        chs[0]=
        chs[1]=b
        chs[2]=c
        chs[3]=d
        chs[4]=
        chs[5]=
        */
    }


    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}
相關文章
相關標籤/搜索