Java String 類
Java String 類
字串廣泛應用 在 Java 程式設計中,在 Java 中字串屬於物件,Java 提供了 String 類來建立和操作字串。
建立字串
建立字串最簡單的方式如下:
在程式碼中遇到字串常量時,這裡的值是 "itread01"",編譯器會使用該值建立一個 String 物件。
和其它物件一樣,可以使用關鍵字和構造方法來建立 String 物件。
用建構函式建立字串:
String 建立的字串儲存在公共池中,而 new 建立的字串物件在堆上:
String 類有 11 種構造方法,這些方法提供不同的引數來初始化字串,比如提供一個字元陣列引數:
StringDemo.java 檔案程式碼:
以上例項編譯執行結果如下:
itread01
注意:String 類是不可改變的,所以你一旦建立了 String 物件,那它的值就無法改變了(詳看筆記部分解析)。
如果需要對字串做很多修改,那麼應該選擇使用 StringBuffer & StringBuilder 類。
字串長度
用於獲取有關物件的資訊的方法稱為訪問器方法。
String 類的一個訪問器方法是 length() 方法,它返回字串物件包含的字元數。
下面的程式碼執行後,len 變數等於 14:
StringDemo.java 檔案程式碼:
以上例項編譯執行結果如下:
入門教學網址長度 : 14
連線字串
String 類提供了連線兩個字串的方法:
返回 string2 連線 string1 的新字串。也可以對字串常量使用 concat() 方法,如:
"我的名字是 ".concat("itread01");
更常用的是使用'+'操作符來連線字串,如:
"Hello," + " itread01" + "!"
結果如下:
"Hello, itread01!"
下面是一個例子:
StringDemo.java 檔案程式碼:
以上例項編譯執行結果如下:
1、入門教學網址:www.itread01.com
建立格式化字串
我們知道輸出格式化數字可以使用 printf() 和 format() 方法。
String 類使用靜態方法 format() 返回一個String 物件而不是 PrintStream 物件。
String 類的靜態方法 format() 能用來建立可複用的格式化字串,而不僅僅是用於一次列印輸出。
如下所示:
你也可以這樣寫
String 方法
下面是 String 類支援的方法,更多詳細,參看 Java String API 文件:
SN(序號) | 方法描述 |
---|---|
1 |
char charAt(int index) 返回指定索引處的 char 值。 |
2 |
int compareTo(Object o) 把這個字串和另一個物件比較。 |
3 |
int compareTo(String anotherString) 按字典順序比較兩個字串。 |
4 |
int compareToIgnoreCase(String str) 按字典順序比較兩個字串,不考慮大小寫。 |
5 |
String concat(String str) 將指定字串連線到此字串的結尾。 |
6 |
boolean contentEquals(StringBuffer sb) 當且僅當字串與指定的StringBuffer有相同順序的字元時候返回真。 |
7 |
static String copyValueOf(char[] data) 返回指定陣列中表示該字元序列的 String。 |
8 |
static String copyValueOf(char[] data, int offset, int count) 返回指定陣列中表示該字元序列的 String。 |
9 |
boolean endsWith(String suffix) 測試此字串是否以指定的字尾結束。 |
10 |
boolean equals(Object anObject) 將此字串與指定的物件比較。 |
11 |
boolean equalsIgnoreCase(String anotherString) 將此 String 與另一個 String 比較,不考慮大小寫。 |
12 |
byte[] getBytes() 使用平臺的預設字符集將此 String 編碼為 byte 序列,並將結果儲存到一個新的 byte 陣列中。 |
13 |
byte[] getBytes(String charsetName) 使用指定的字符集將此 String 編碼為 byte 序列,並將結果儲存到一個新的 byte 陣列中。 |
14 |
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 將字元從此字串複製到目標字元陣列。 |
15 |
int hashCode() 返回此字串的雜湊碼。 |
16 |
int indexOf(int ch) 返回指定字元在此字串中第一次出現處的索引。 |
17 |
int indexOf(int ch, int fromIndex) 返回在此字串中第一次出現指定字元處的索引,從指定的索引開始搜尋。 |
18 |
int indexOf(String str) 返回指定子字串在此字串中第一次出現處的索引。 |
19 |
int indexOf(String str, int fromIndex) 返回指定子字串在此字串中第一次出現處的索引,從指定的索引開始。 |
20 |
String intern() 返回字串物件的規範化表示形式。 |
21 |
int lastIndexOf(int ch) 返回指定字元在此字串中最後一次出現處的索引。 |
22 |
int lastIndexOf(int ch, int fromIndex) 返回指定字元在此字串中最後一次出現處的索引,從指定的索引處開始進行反向搜尋。 |
23 |
int lastIndexOf(String str) 返回指定子字串在此字串中最右邊出現處的索引。 |
24 |
int lastIndexOf(String str, int fromIndex) 返回指定子字串在此字串中最後一次出現處的索引,從指定的索引開始反向搜尋。 |
25 |
int length() 返回此字串的長度。 |
26 |
boolean matches(String regex) 告知此字串是否匹配給定的正則表示式。 |
27 |
boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) 測試兩個字串區域是否相等。 |
28 |
boolean regionMatches(int toffset, String other, int ooffset, int len) 測試兩個字串區域是否相等。 |
29 |
String replace(char oldChar, char newChar) 返回一個新的字串,它是通過用 newChar 替換此字串中出現的所有 oldChar 得到的。 |
30 |
String replaceAll(String regex, String replacement) 使用給定的 replacement 替換此字串所有匹配給定的正則表示式的子字串。 |
31 |
String replaceFirst(String regex, String replacement) 使用給定的 replacement 替換此字串匹配給定的正則表示式的第一個子字串。 |
32 |
String[] split(String regex) 根據給定正則表示式的匹配拆分此字串。 |
33 |
String[] split(String regex, int limit) 根據匹配給定的正則表示式來拆分此字串。 |
34 |
boolean startsWith(String prefix) 測試此字串是否以指定的字首開始。 |
35 |
boolean startsWith(String prefix, int toffset) 測試此字串從指定索引開始的子字串是否以指定字首開始。 |
36 |
CharSequence subSequence(int beginIndex, int endIndex) 返回一個新的字元序列,它是此序列的一個子序列。 |
37 |
String substring(int beginIndex) 返回一個新的字串,它是此字串的一個子字串。 |
38 |
String substring(int beginIndex, int endIndex) 返回一個新字串,它是此字串的一個子字串。 |
39 |
char[] toCharArray() 將此字串轉換為一個新的字元陣列。 |
40 |
String toLowerCase() 使用預設語言環境的規則將此 String 中的所有字元都轉換為小寫。 |
41 |
String toLowerCase(Locale locale) 使用給定 Locale 的規則將此 String 中的所有字元都轉換為小寫。 |
42 |
String toString() 返回此物件本身(它已經是一個字串!)。 |
43 |
String toUpperCase() 使用預設語言環境的規則將此 String 中的所有字元都轉換為大寫。 |
44 |
String toUpperCase(Locale locale) 使用給定 Locale 的規則將此 String 中的所有字元都轉換為大寫。 |
45 |
String trim() 返回字串的副本,忽略前導空白和尾部空白。 |
46 |
static String valueOf(primitive data type x) 返回給定data type型別x引數的字串表示形式。 |
47 |
contains(CharSequence chars) 判斷是否包含指定的字元系列。 |
48 |
isEmpty() 判斷字串是否為空。 |