Java的String類的常用方法
Java提供的API和前面幾篇文章中涉及到的技術已經對字符串的支持已經很完善了,多使用API中提供的各種方法,并且在細節上注意效率問題,會讓我們對于字符串的處理更加得心應手,下面列舉了一些常用的API,更詳細的用法和更多的重載方法可以查閱JDK文檔。
String
public String()
- 初始化一個新創建的
String
對象,使其表示一個空字符序列。注意,由于 String 是不可變的,所以無需使用此構造方法。
同時String的構造器提供了各種豐富的重載方法,詳細查看API文檔
length
public int length()
- 返回此字符串的長度。長度等于字符串中 Unicode 代碼單元的數量。
charAt
public char charAt(int index)
- 返回指定索引處的
char
值。索引范圍為從0
到length() - 1
。序列的第一個char
值位于索引0
處,第二個位于索引1
處,依此類推,這類似于數組索引。如果索引指定的char
值是代理項,則返回代理項值。
getChars
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
- 將字符從此字符串復制到目標字符數組。要復制的第一個字符位于索引
srcBegin
處;要復制的最后一個字符位于索引srcEnd-1
處(因此要復制的字符總數是srcEnd-srcBegin
)。要復制到dst
子數組的字符從索引dstBegin
處開始,并結束于索引:dstbegin + (srcEnd-srcBegin) - 1
getBytes
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
- 使用指定的字符集將此
String
編碼為 byte 序列,并將結果存儲到一個新的 byte 數組中。當此字符串不能使用給定的字符集編碼時,此方法的行為沒有指定。如果需要對編碼過程進行更多控制,則應該使用CharsetEncoder
類。
toCharArray
public char[] toCharArray()
- 將此字符串轉換為一個新的字符數組。
equals
public boolean equals(Object anObject)
- 將此字符串與指定的對象比較。當且僅當該參數不為
null
,并且是與此對象表示相同字符序列的String
對象時,結果才為true
equalsIgnoreCase
public boolean equalsIgnoreCase(String anotherString)
- 將此
String
與另一個String
比較,不考慮大小寫。如果兩個字符串的長度相同,并且其中的相應字符都相等(忽略大小寫),則認為這兩個字符串是相等的。
compareTo
public int compareTo(String anotherString)
- 按字典順序比較兩個字符串。該比較基于字符串中各個字符的 Unicode 值。按字典順序將此
String
對象表示的字符序列與參數字符串所表示的字符序列進行比較。如果按字典順序此String
對象位于參數字符串之前,則比較結果為一個負整數。如果按字典順序此String
對象位于參數字符串之后,則比較結果為一個正整數。如果這兩個字符串相等,則結果為 0;compareTo
只在方法equals(Object)
返回true
時才返回0
contains
public boolean contains(CharSequence s)
- 當且僅當此字符串包含指定的 char 值序列時,返回 true。
contentEquals
public boolean contentEquals(CharSequence cs)
- 將此字符串與指定的
CharSequence
比較。當且僅當此String
與指定序列表示相同的 char 值序列時,結果才為true
。
equalsIgnoreCase
public boolean equalsIgnoreCase(String anotherString)
- 將此
String
與另一個String
比較,不考慮大小寫。如果兩個字符串的長度相同,并且其中的相應字符都相等(忽略大小寫),則認為這兩個字符串是相等的。在忽略大小寫的情況下,如果下列至少一項為 true,則認為c1
和c2
這兩個字符相同。- 這兩個字符相同(使用
==
運算符進行比較)。 - 對每個字符應用方法
Character.toUpperCase(char)
生成相同的結果。 - 對每個字符應用方法
Character.toLowerCase(char)
生成相同的結果。
- 這兩個字符相同(使用
boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
測試兩個字符串區域是否相等。
boolean regionMatches(int toffset, String other, int ooffset, int len)
測試兩個字符串區域是否相等。
boolean startsWith(String prefix)
測試此字符串是否以指定的前綴開始。
boolean startsWith(String prefix, int toffset)
測試此字符串從指定索引開始的子字符串是否以指定前綴開始。
boolean endsWith(String suffix)
測試此字符串是否以指定的后綴結束。
indexOf(int ch)
返回指定字符在此字符串中第一次出現處的索引。
indexOf(int ch, int fromIndex)
返回在此字符串中第一次出現指定字符處的索引,從指定的索引開始搜索。
lastIndexOf(int ch)
返回指定字符在此字符串中最后一次出現處的索引。
lastIndexOf(int ch, int fromIndex)
返回指定字符在此字符串中最后一次出現處的索引,從指定的索引處開始進行反向搜索。
String substring(int beginIndex)
返回一個新的字符串,它是此字符串的一個子字符串。
String substring(int beginIndex, int endIndex)
返回一個新字符串,它是此字符串的一個子字符串。
CharSequence subSequence(int beginIndex, int endIndex)
返回一個新的字符序列,它是此序列的一個子序列。
String concat(String str)
將指定字符串連接到此字符串的結尾。
String replace(char oldChar, char newChar)
返回一個新的字符串,它是通過用 newChar
替換此字符串中出現的所有 oldChar
得到的。
String toLowerCase()
使用默認語言環境的規則將此 String
中的所有字符都轉換為小寫。
String toLowerCase(Locale locale)
使用給定 Locale
的規則將此 String
中的所有字符都轉換為小寫。
String trim()
返回字符串的副本,忽略前導空白和尾部空白。
valueOf(boolean b)
返回 boolean
參數的字符串表示形式。
String intern()
返回字符串對象的規范化表示形式。