java,String字串的簡單總結
String字串不是基本資料型別,是物件哦,記憶體是不可變的,平時我們只是改變變數的引用關係而已。
字串池的優化:我們的程式中會宣告有很多個字串去存值傳值,為了避免相同內容的字串重複申請了多個而浪費了資源,所以字串池就把相同的統一引用到字串池裡的一個。
例如:
String s1="aa";
String s2="aa";
s1和s2是引用了字串池的同一個物件哦。
除非是這樣,String s3=new String("aa");才會新構建了物件,另開的記憶體資源。
-----------------------------------------
//空字串 String s1 = ""; //沒有指向記憶體 String s2 = null;
-----------------------------------------
String的構造器
可直接傳入字串型別引數,char[]陣列型別,byte[]位元組陣列型別+指定字符集(不指定會按照系統的字符集型別來轉碼),還能傳入StringBuffer型別或者StringBuilder型別。
-----------------------------------------
String的轉位元組方法:
getBytes();得到位元組陣列byte[],可以方法的引數指定字符集型別。
如果不給引數,字符集按照系統預設的字符集。
-----------------------------------------
String的常用方法:
length 返回字串長度
isEmpty 判斷是否為空字串(不是判斷null)
trim 去除字串前後空格
toLowerCase 轉小寫
toUpperCase() 轉大寫
split 字串分離(支援表示式)
toCharArray 把字串拆分成char陣列
-----------------------------------------
indexOf 字串搜尋
搜尋不到返回-1
引數有這麼4種傳法:
int型別 (單個字元搜尋)
int型別 int型別 (單個字元搜尋並按指定下標開始搜尋)
String型別 (字串
String型別 String型別(字串搜尋並按指定下標開始搜尋)
-----------------------------------------
lastIndexOf和IndexOf一樣的用法,只不過是反過來從後面開始搜尋至前面。
-----------------------------------------
擷取方法
charAt 指定下標獲取字元
substring 指定下標往後獲取字串 或者 傳入指定起始下標和結束擷取下標
-----------------------------------------
比較方法
startsWith 比較開頭字串與我傳進去的字串是否一致,返回boolean型別
endsWith 比較結尾字串與我傳進去的字串是否一致,返回boolean型別
equals 比較兩個字串是否一致
equalsIgnoreCase 不分大小寫的比較兩個字串是否一致
-----------------------------------------
替換方法
replace 單個字元替換或者字串替換
replaceAll 正則表示式替換方案