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()處理..