1. 程式人生 > >Java學習——StringBuffer和 StringBuilder

Java學習——StringBuffer和 StringBuilder

StringBuffer 和 StringBuilder


首先來回顧下String類的特點:

任何的字串常量都是String物件,而且String的常量一旦宣告不可改變,如果改變物件內容,改變的是其引用的指向而已。通常來講String的操作比較簡單,但是由於String的不可更改特性,為了方便字串的修改,提供StringBuffer類。

一.字串連線

在String中使用"+"來進行字串連線,但是這個操作在StringBuffer類中需要更改為append()方法:

        StringBuffer sb = new StringBuffer();
        sb.append("Hello").append(" World");
        System.out.println(sb);

二.StringBuffer與String類的相互轉換

String---->StringBuffer

1.append()方法

        StringBuffer sb = new StringBuffer();
        String str = "Hello";
        sb.append(str);
        System.out.println(sb);

2.呼叫StringBuffer的構造方法 new StringBuffer(“str”)

        String str = "Hello";
        StringBuffer sb = new StringBuffer(str);
        System.out.println(sb);

StringBuffer ——>String

呼叫StringBuffer.toString();方法

        StringBuffer sb = new StringBuffer();
        sb.append("Hello");
        String str = sb.toString();
        System.out.println(str);

三.StringBuffer常用操作方法

1.字串反轉

reverse():返回值StringBuffer

        StringBuffer sb = new StringBuffer();
        sb.append("Hello");
        System.out.println(sb.reverse());//olleH

2.刪除指定範圍的資料

public synchronized StringBuffer delete(int start, int end) 

        StringBuffer sb = new StringBuffer();
        sb.append("Hello");
        System.out.println(sb.delete(1,3));//Hlo

3.在指定位置插入資料

public synchronized StringBuffer insert(int offset, 各種資料型別 b)

        StringBuffer sb = new StringBuffer();
        sb.append("Hello");
        System.out.println(sb.insert(5,"World"));//HelloWorld

 

請解釋String、StringBuffer、StringBuilder的區別:

1. String的內容不可修改,StringBuffer與StringBuilder的內容可以修改.

2.StringBuffer與StringBuilder的用法一樣,不同的地方在於StringBuffer是jdk1.0產生,採用同步處理,執行緒安全,效率較低;StringBuilder是jdk1.5產生的,採用非同步處理,執行緒不安全,效率較高;當在String物件進行“+”,編譯器會將String類變為StringBuffer進行append()處理..