一旦被初始化就不可以被改變。 String s1 = new String("abc"); String s2 = "abc"; System.out.println(s1==s2);//false System.out.println(s1.equals(s2));//true String類覆寫 ...
一旦被初始化就不可以被改變。
String s1 = new String("abc"); String s2 = "abc"; System.out.println(s1==s2);//false System.out.println(s1.equals(s2));//true
String類覆寫了Object類中的equals方法,該方法用於判斷字元串是否相同。
s1與s2區別?
s2在記憶體中有一個對象,s1在記憶體中有兩個對象。
String s1 = "abc"; String s2 = new String("abc"); String s3 = "abc"; System.out.println(s1 == s2);//false System.out.println(s1 == s3);//true
已經存在不能被改變,直接用。
獲取:
長度:length()
根據索引獲取字元:charAt()
根據字元獲取索引:可以判斷是否包含()
int indexOf(char ch)
int indexOf(char ch, int fromIndex)
int indexOf(String str)
int indexOf(String str, int fromIndex)
反向索引:
改為lastIndexOf就行。
判斷:
判斷開頭:boolean startsWith(String prefix)
是否有內容:boolean isEmpty() length為0
判斷結束:boolean endsWith(String suffix)
包含:boolean contains(CharSequence s)
判斷內容是否相同:boolean equals(Object anObject) 覆寫了Object的equals
判斷內容是否相同(忽略大小寫):boolean equalsIgnoreCase(String anotherString)
轉換:
字元數組轉成字元串:
構造函數:String(char[] value); String(char[] value, int offset, int count)
靜態方法:static String copyValueOf(char[] data) ; static String copyValueOf(char[] data, int offset, int count) ; static String valueOf(char[] data)
字元串轉成字元數組:char[] toCharArray()
位元組數組轉成字元串:
構造函數:String(byte[] value); String(byte[] value, int offset, int count)
字元串轉成位元組數組:byte[] getBytes(String charsetName)
基本數據類型轉化成字元串:static String valueOf(基本數據類型)
特殊:字元串和字元數組在轉換過程中是可以指定編碼表的。
替換:
String replace(char oldChar, char newChar) 替換的字元不存在,返回原串
切割:
String[] split(String regex)
子串:
String substring(int beginIndex) 到結尾
String substring(int beginIndex, int endIndex)不包含尾
轉換,去除空格,比較:
String toUpperCase() 轉換成大寫
String toLowerCase() 轉換成小寫
String trim() 去除兩端空格
int compareTo(String anotherString) 對兩個字元串進行自然順序的比較 大於正 小於負 ASCII值之差