java String,StringBuilder和StringBuffer

biubiubiuo發表於2018-02-27

String:
1.java語言中的字串值屬於String類,雖然有其它方法表示字串(如字元陣列),但java一般使用Sting類作為字串的標準格式,java編譯器把字串值作為String物件。
2.String物件一旦建立就不能改變。如果需要進行大量的字串修改操作,應該使用StringButter/StringBuilder類或者字元陣列,最終結果可以被轉換成String物件。

StringBuffer:
1.StringBuffer 執行緒安全的可變字元序列
2.一個類似於String的字串緩衝區(字元陣列)通過某些方法呼叫可以改變該序列的長度和內容。
3.每個字串緩衝區都有一定的容量。只要字串緩衝區所包含的字元序列的長度沒有超過此容量就無須分配新的內部緩衝區陣列。
4.如果內部緩衝區溢位,則此容量自動增大。

StringBuilder:
1.從JDK5開始,為StringBuffer類補充了一個單個執行緒使用的等價類,即StringBuilder。
2.與StringBuffer相比,通常應該優先使用StringBuilder類,因為它支援所有相同的操作,但是由於它不執行同步,所以速度更快。

public int length() //返回字串長度
public int capacity() //返回字串陣列容量長度
public StringBuffer append(String str) //新增一個字元或字串
public StringBuffer insert(int offset,String str) //在指定位置插入一個字串
public int indexOf(String str) //查詢字串首次出現的下標
public int indexOf(String str,int fromIndex) //從指定位置開始,查詢字串首次出現的下標
public int lastIndexOf(String str) //查詢字串最近一次出現的下標
public StringBuffer reverse() //翻轉字串
public String toString() //將字元陣列緩衝區轉換為字串常量
API文件講解

public class StringBuilderDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //StringBuilder sb = "abc";//無此種宣告方式
        //StringBuilder sb = new StringBuilder();//預設16個字元大小的容量陣列
        //StringBuilder sb = new StringBuilder(100);//初始化100個容量的字串陣列
        //StringBuilder sb = new StringBuilder("abc");//字串的前三個字元是abc
        StringBuilder sb = new StringBuilder();
        sb.append("abc");
        sb.append(1);
        sb.append(1.5);
        System.out.println(sb.length());
        System.out.println(sb.capacity());
        sb.insert(3, "def");
        System.out.println(sb.toString());
        sb.replace(3, 6, "kkk");
        System.out.println(sb.toString());
        System.out.println(sb.indexOf("b"));
        System.out.println(sb.reverse());
    }

}

 

相關文章