Java 中的 String 類包含了 50 多個方法。令人驚訝的是絕大多數都很有用,可以設想使用的頻率非常高。下面的 API(Java 應用程式程式設計介面)注釋匯總了一部分最常用的方法。
在這裡,一般不列出某個類的所有方法,而是選擇一些最常用的方法,並以簡潔的方式給予描述。這裡還列出了所給類的版本號。如果某個方法是在這個版本之後新增的,就會給出一個單獨的版本號。
在熟悉這些方法之前,我們先對碼點和程式碼單元進行簡單介紹:
-
碼點:就是某個任意字元在 Unicode 編碼表中對應的程式碼值。
-
程式碼單元:是在計算機中用來表示碼點的,大部分碼點只需要一個程式碼單元表示,但是有一些是需要兩個程式碼單元表示的。
1)char charAt (int index)
返回給定位置的程式碼單元。除非對底層的程式碼單元感興趣,否則不需要呼叫這個方法。
2)int codePointAt(int index) 5.0
返回從給定位置開始的碼點。
3)int offsetByCodePoints(int startIndex,int cpCount) 5.0
返回從 startIndex 程式碼點開始,位移 cpCount 後的碼點索引。
4)int compareTo(String other)
按照字典順序,如果字串位於 other 之前,返回一個負數;如果字串位於 other 之後,返回一個正數;如果兩個字串相等,返回 0。
5)IntStream codePoints() 8
將這個字串的碼點作為一個流返回。呼叫 toArray 將它們放在一個陣列中。
6) new String(int[] codePoints, int offset, int count) 5.0
用陣列中從 offset 開始的 count 個碼點構造一個字串。
7)boolean equals(Object other)
如果字串與 other 相等,返回 true。
8)boolean equalsIgnoreCase(String other)
如果字串與 other 相等(忽略大小寫)返回 true。
9)boolean startsWith(String prefix)
10)boolean endsWith(String suffix)
如果字串以 suffix 開頭或結尾,則返回 true。
11)int indexOf(String str)
12)int indexOf(String str, int fromIndex)
13)int indexOf(int cp)
14)int indexOf(int cp, int fromIndex)
返回與字串 str 或程式碼點 cp 匹配的第一個子串的開始位置。這個位置從索引 0 或 fromIndex 開始計算。如果在原始串中不存在 str,返回 -1。
15)int lastIndexOf(String str)
16)int lastIndexOf(String str, int fromIndex)
17)int lastIndexOf(int cp)
18)int lastIndexOf(int cp, int fromIndex)
返回與字串 str 或程式碼點 cp 匹配的最後一個子串的開始位置。這個位置從原始串尾端或 fromIndex 開始計算。
19)int length()
返回字串的長度。
20)int codePointCount(int startIndex, int endIndex) 5.0
返回 startIndex 和 endIndex-1 之間的程式碼點數量。沒有配成對的代用字元將計入程式碼點。
21)String replace(CharSequence oldString, CharSequence newString)
返回一個新字串。這個字串用 newString 代替原始字串中所有的 oldString。可以用 String 或 StringBuilder 物件作為 CharSequence 引數。
22)String ?substring(int beginIndex)
23)String substring(int beginIndex, int endIndex)
返回一個新字串。這個字串包含原始字串中從 beginlndex 到串尾或 endlndex-1 的所有程式碼單元。
24)String toLowerCase()
25)String toUpperCase()
返回一個新字串。這個字串將原始字串中的大寫字母改為小寫,或者將原始字串中的所有小寫字母改成了大寫字母。
26)String trim()
返回一個新字串。這個字串將刪除了原始字串頭部和尾部的空格。
27)String join(CharSequence delimiter, CharSequence... elements) 8
返回一個新字串,用給定的定界符連線所有元素。
在 API 注釋中,有一些 CharSequence 型別的引數。這是一種介面型別,所有字串都屬於這個介面。教學後面將介紹更多有關介面型別的內容。現在只需要知道只要看到一個CharSequence 形參,完全可以傳入 String 型別的實參。