StringBuilder和StringBuffer的差別及清空內容方式
在Java中常用到字串的處理,
但String本身是固定長度不能改變內容的,
我們常用+來連結附加字串其實相當耗費資源,
在大量處理字串的情況下我們有更好的選擇。
Java在J2SE5.0之後提供了StringBuilder類別,
他有許多好用的操作字串的方法如:
insert()、reverse()、replace()、append()等,
更多詳細的API可見:java.lang.StringBuilder 的API說明。
而很多人會有這樣的疑問(我也是一直弄不清楚才來寫這篇的XD),
StringBuilder和StringBuffer有什麼差別呢?
他們兩個提供了相同的介面,
然而在不需考量多執行緒同步的時候我們使用StringBuilder來獲得最佳的效率,
要考慮多執行緒的情況下使用StringBuffer來讓類別自動處理同步的問題。
另外這兩個類別雖然相當好用,
但似乎許多人都會找不到如何清空他,
這大概是因為單純看 method 時沒有看到叫做 clear() 之類的 method,
但其實我們還是可以透過 delete(int start, int end) 這個 method 來達成目的。
用法就像這樣:stringBuffer.delete(0, stringBuffer.length());
關鍵字:StringBuilder, StringBuffer, String, 字串處理, 不同, 清空, 內容, 如何
參考資料:
但String本身是固定長度不能改變內容的,
我們常用+來連結附加字串其實相當耗費資源,
在大量處理字串的情況下我們有更好的選擇。
Java在J2SE5.0之後提供了StringBuilder類別,
他有許多好用的操作字串的方法如:
insert()、reverse()、replace()、append()等,
更多詳細的API可見:java.lang.StringBuilder 的API說明。
而很多人會有這樣的疑問(我也是一直弄不清楚才來寫這篇的XD),
StringBuilder和StringBuffer有什麼差別呢?
他們兩個提供了相同的介面,
然而在不需考量多執行緒同步的時候我們使用StringBuilder來獲得最佳的效率,
要考慮多執行緒的情況下使用StringBuffer來讓類別自動處理同步的問題。
另外這兩個類別雖然相當好用,
但似乎許多人都會找不到如何清空他,
這大概是因為單純看 method 時沒有看到叫做 clear() 之類的 method,
但其實我們還是可以透過 delete(int start, int end) 這個 method 來達成目的。
用法就像這樣:stringBuffer.delete(0, stringBuffer.length());
關鍵字:StringBuilder, StringBuffer, String, 字串處理, 不同, 清空, 內容, 如何
參考資料: