Java字串(String_StringBuilder_StringBuffer)

twilight0402發表於2017-01-04

版權宣告:本文為博主原創文章,轉載請註明出處。 https://blog.csdn.net/twilight_karl/article/details/54015446

String類

不可變字元序列

 String類中使用字元陣列儲存字串,但是字元陣列是用final修飾的。不可變

   private final char value[];

構造方法:
String() 初始化一個新建立的 String 物件,使其表示一個空字元序列。
String(byte[] bytes) 通過使用平臺的預設字符集解碼指定的 byte 陣列,構造一個新的 String。
String(byte[] bytes, Charset charset) 通過使用指定的 charset 解碼指定的 byte 陣列,構造一個新的 String。

方法
indexOf(char ch) 返回指定字元在此字串中第一次出現處的索引
charAt(int index) 返回指定索引處的 char 值
lastIndexof() 返回指定字元在此字串中最後一次出現處的索引。
startWith() 測試此字串是否以指定的字首開始。
endsWith()測試此字串是否以指定的字尾結束
subString() 返回一個新的字串,它是此字串的一個子字串。
split()根據給定正規表示式的匹配拆分此字串。
toLowerCase()轉換為小寫,返回新字串
toUpperCase() 使用預設語言環境的規則將此 String 中的所有字元都轉換為大寫
equalsIgnoreCase()將此 String 與另一個 String 比較,不考慮大小寫。

StringBuilder類

可變字元序列
執行緒不安全,效率高

建構函式:
StringBuilder() 構造一個其中不帶字元的字串生成器,初始容量為 16 個字元。
StringBuilder(int capacity) 構造一個其中不帶字元的字串生成器,初始容量由 capacity 引數指定。
StringBuilder(String str) 構造一個字串生成器,並初始化為指定的字串內容。

方法:
append(char c) 追加
delete(int start, int end) 刪除start ~ end-1字元
deleteCharAt(int index)
ensureCapacity(int minimumCapacity) 確保容量大於minimumCapacity
getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 把srcBegin~srcEnd複製到dst的dstBegin位置處
indexOf(String str) 返回str第一次出現的位置
insert(int offset, char c) 插入
replace(int start, int end, String str) 把start~end替換為str
reverse() 逆置

StringBuffer類

執行緒安全,效率低,與StringBuilter基本一樣,他們都繼承於抽象類AbstractStringBuilder。StringBuffer中的函式大部分是synchronize同步的,所以執行時會受其他執行緒的影響。效率會降低。
所以,如果程式用不到多執行緒,那麼使用StringBuilder更高效。


相關文章