當需要頻繁修改字符串內容時,應使用 StringBuffer 或 StringBuilder。兩者均提供可變字符序列,避免 String 不可變帶來的大量對象創建。核心差異在於線程安全性與性能。
| 特性 | StringBuffer | StringBuilder |
|---|---|---|
| 線程安全 | 是(方法同步) | 否(非同步) |
| 性能 | 較低 | 較高(推薦單線程使用) |
| 引入版本 | JDK 1.0 | JDK 1.5 |
| 方法 | 說明 |
|---|---|
append(String s) | 追加字符串 |
reverse() | 反轉序列 |
delete(int start, int end) | 刪除子序列 |
insert(int offset, String s) | 插入字符串 |
replace(int start, int end, String str) | 替換子序列 |
capacity() | 當前容量 |
ensureCapacity(int min) | 確保最小容量 |
length() | 字符長度 |
charAt(int index) | 指定位置字符 |
substring(int start) | 截取子序列為 String |
toString() | 轉為 String |