正則表達式
正則表達式概念:
正則表達式本質就是一個“規則字符串”,可以用於對字符串數據的格式進行驗證,以及匹配、查
找、替換等操作。該字符串通常使用^運算符作爲開頭標誌,使用$運算符作爲結尾標誌,當然也可以省
略。
正則表達式規則:
正則表達式規則:
可變字符串類
可變字符串類的基本概念
1.由於String類描述的字符串內容是個常量不可改變,當需要在java代碼中描述大量類似的字符串是,只能單獨申請和存儲,此時會造成內存空間的浪費。
2.爲了解決上述問題,可以使用java.lang.StringBuilder類和java.lang.StringBuffer類來描述字符序列可以改變的字符串,如‘ab’.
3.StringBuffer是從jdk1.0開始存在,屬於線程安全的類,因此效率比較低
4.StringBuilder是從jdk1.5開始存在,屬於非線程安全的類,效率比較高
StringBuilder類常用的構造方法
StringBuilder類常用的成員方法
注意:
作爲參數傳遞的話,方法內部String不會改變其值,StringBuffffer和StringBuilder會改變其值。
StringBuilder類擴容算法的源碼解析
底層採用byte數組來存儲所有字符內容。
//使用for循環刪除多個字符
for(int i=8;i<12;i++){
//由結果可知:刪除一個字符就跳過一個字符繼續刪除,因爲每當刪除一個字符後後面 的字符會向前補位,因爲下標會發生變化
//Sb.deleteCharAt(i);
解決辦法:
//始終刪除下標爲8的元素
Sb.deleteCharAt(8);
}
字符串類的筆試考點:
考點一:既然StringBuilder類的對象本身可以修改,那麼爲什麼成員方法還有返回值呢?
解釋:爲了連續調用
例:Sb3.revese().append("1").insert(0,"e");
返回值的設計
考點二:如何實現StringBuilder類型和String類型之間的轉換呢?
解釋:
String str=sb3.toString();
StringBuilder sb5=new StringBuilder(str3);
考點三:
String,StringBuilder,StringBuffer誰的效率最高。
解釋:String<StringBuffer<StringBuilder