Java常用API—StringBuffer類與StringBuilder類

一、引言

String類雖然很強大,但是因爲String類不可變,所以會造成內存的過於浪費。爲了解決字符串的內存問題,誕生了StringBuffer類,也就是字符串緩衝區。它的出現極大提高了字符串的操作效率。

StringBuffer內部定義了一個沒有final的數組(實質上是StringBuffer繼承的父類AbstractStringBuilder中定義的:char[] value)。該數組的默認容量是16個字符。當數組擴容時,將原數組複製,再添加,形成新的數組,將舊數組拋棄。


二、StringBuffer的方法

》StringBuffer append(String str)

將形參引用的字符串追加到字符串後面,可以接受任何數據類型但是最後輸出的都是字符串類型。誰調用返回誰,可以無限制在後面調用(方法調用鏈,即如果方法的返回值類型還是個對象,那麼還可以接着點出方法)

結果:

》StringBuffer delete(int start, int end) 移除此序列的子字符串中的字符

java中,索引有開始結束的,都是含頭不含尾

如果想清空緩衝區,可以通過如下代碼做到:

結果:

 

》StringBufferinsert(int offset, ***) 將字符串插入此字符串任意位置(offset指定的下標位置),***可以爲任何類型

》StringBufferreplace(int start, int end, String str) 使用給定字符串替換

》StringBufferreverse() 將此字符序列反轉

》StringtoString() 以字符串形式返回序列


三、StringBuilder類

與StringBuffer兼容(兩個類的方法相同),該類被設計用作StringBuffer的一個簡易替換,用在字符串緩衝區被單個線程使用的時候。如果沒有多線程需求,建議使用StringBuilder,因爲StringBuilder較快。


四、StringBuilder 與 StringBuffer 的區別

StringBuilder線程不安全,執行效率高,StringBuffer相反。其他都一樣,方法完全相同。

發佈了42 篇原創文章 · 獲贊 17 · 訪問量 8781
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章