建立字串很簡單,可以利用字串的字面常數 (literal) ,也就是兩個雙引號圍住的任何 Unicode 字元,如
String a = "hello"; String b = "甲乙丙丁"; String c = ""; //這是一個空字串
也可以利用 String 類別的建構子 (constructor) 建立字串,如
String a = new String({ 'h', 'e', 'l', 'l', 'o'}); String b = new String("甲乙丙丁"); String c = new String(); //這是一個空字串
String() 是多載 (overloading) 的建構子,可接受多種不同的參數 (parameter) 建立字串。
String 類別中也有許多方法 (method) 可供運用,例如以下方法計算字串長度,也就是字串內含 Unicode 字元的個數
方法 | 描述 |
---|---|
int length() | 計算字串內 Unicode 字元的個數 |
以下方法用於連接字串
方法 | 描述 |
---|---|
String concat(String str) | 將 str 接到字串的後面 |
以下方法用於格式化字串
方法 | 描述 |
---|---|
static String format(Locale l, String format, Object... args) static String format(String format, Object... args) | 格式化字串 |
以下方法用於拆開字串
方法 | 描述 |
---|---|
String[] split(String regex) String[] split(String regex, int limit) | 將原字串利用 regex 拆開存入字串陣列,然後回傳這個字串陣列 |
以下方法用於取得子字串
方法 | 描述 |
---|---|
String substring(int beginIndex, int endIndex) | 回傳從 beginIndex 到 endIndex 之間的子字串 |
String substring(int beginIndex) | 回傳從 beginIndex 到結尾的子字串 |
CharSequence subSequence(int beginIndex, int endIndex) | 回傳從 beginIndex 到 endIndex 之間的 CharSequence 型態物件 |
String trim() | 回傳去除首尾空白符號的子字串 |
以下方法用於搜尋
方法 | 描述 |
---|---|
int indexOf(int ch) | 回傳第一個 ch 字元的索引值 |
int lastIndexOf(int ch) | 回傳最後一個 ch 字元的索引值 |
int indexOf(int ch, int fromIndex) | 回傳 fromIndex 之後的第一個 ch 字元的索引值 |
int lastIndexOf(int ch, int fromIndex) | 回傳 fromIndex 之前的最後一個 ch 字元的索引值 |
int indexOf(String str) | 回傳第一個子字串 str 開始的的索引值 |
int lastIndexOf(String str) | 回傳最後一個子字串 str 開始的的索引值 |
boolean contains(CharSequence s) | 判斷字串中是否包含 s |
以下方法用於置換
方法 | 描述 |
---|---|
String replace(char oldChar, char newChar) | 將 oldChar 字元以 newChar 置換 |
String replace(CharSequence target, CharSequence replacement) | 將 target 子字串以 replacement 置換 |
String replaceAll(String regex, String replacement) | 將符合 regex 置換成 replacement |
String replaceFirst(String regex, String replacement) | 將第一個符合 regex 的子字串置換成 replacement |
以下方法用於比較
方法 | 描述 |
---|---|
boolean endsWith(String suffix) | 判斷字串是否以 suffix 結尾 |
boolean startsWith(String prefix) | 判斷字串是否以 prefix 開頭 |
boolean startsWith(String prefix, int offset) | 判斷從 offset 開始的子字串是否為 prefix |
int compareTo(String anotherString) | 逐字元比較原字串與 anotherString ,若無不同,也就是兩個字串中的每個字元都相同就回傳 0 ,若有不同則回傳長度差或第一個不同字元的 Unicode 差值 |
int compareToIgnoreCase(String str) | 逐字元比較原字串與 anotherString ,不考慮大小寫的分別,若無不同,也就是兩個字串中的每個字元都相同就回傳 0 ,若有不同則回傳長度差或第一個不同字元的 Unicode 差值 |
boolean equals(Object anObject) | 判斷字串是否與 anObject 相同 |
boolean equalsIgnoreCase(String anotherString) | 判斷字串是否與 anotherString 相同,不考慮大小寫的分別 |
boolean regionMatches(int toffset, String other, int ooffset, int len) | 判斷從 toffset 開始長度為 len 的子字串,是否與 other 從 ooffset開始長度為 len 的子字串相同 |
boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) | 判斷從 toffset 開始長度為 len 的子字串,是否與 other 從 ooffset開始長度為 len 的子字串相同, ignoreCase 提供是否要忽略文大小寫字母 |
boolean matches(String regex) | 判斷字串是否符合 regex |
以下方法用於轉換英文字母的大小寫
方法 | 描述 |
---|---|
String toLowerCase() | 將字串中所有英文字母改為小寫 |
String toUpperCase() | 將字串中所有英文字母改為大寫 |
以下例子簡單示範
class StringDemo { public static void main(String[] args) { String a = "Imagination is more important than knowledge."; String b = "He who has hope has everything."; String c = "台上一分鐘,台下十年功。"; System.out.println(a.length()); System.out.println(b.length()); System.out.println(c.length()); System.out.println(a.substring(20, 29)); System.out.println(b.substring(11, 15)); System.out.println(c.substring(2, 5)); System.out.println(a.endsWith("knowledge.")); System.out.println(b.endsWith("everything")); System.out.println(c.endsWith("十年功")); System.out.println(a.toUpperCase()); System.out.println(b.toUpperCase()); System.out.println(c.toUpperCase()); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:SringDemo.java 功能:示範物件導向的基本觀念 作者:張凱慶 時間:西元 2010 年 10 月 */
編譯後執行,結果如下
參考資料
http://download.oracle.com/javase/tutorial/java/data/strings.html
http://download.oracle.com/javase/tutorial/java/data/converting.html
http://download.oracle.com/javase/tutorial/java/data/manipstrings.html
http://download.oracle.com/javase/tutorial/java/data/comparestrings.html
http://download.oracle.com/javase/7/docs/api/java/lang/String.html
http://download.oracle.com/javase/tutorial/java/data/strings.html
http://download.oracle.com/javase/tutorial/java/data/converting.html
http://download.oracle.com/javase/tutorial/java/data/manipstrings.html
http://download.oracle.com/javase/tutorial/java/data/comparestrings.html
http://download.oracle.com/javase/7/docs/api/java/lang/String.html
沒有留言:
張貼留言