1. 構造方法
char[] c = {'j','y','6','a','4','t','9'};
String s1 = new String(c); // "jy6a4t9"
String s2 = new String(c, 2, 3); // "6a4" 從索引2取3個字符
// 同樣支持 byte[] 參數,指定字符集
2. 轉換方法
| 方法 | 說明 | 示例 |
toCharArray() | 字符串 → char[] | "abc".toCharArray() → ['a','b','c'] |
getBytes() | 字符串 → byte[] (默認平台編碼) | "中".getBytes("UTF-8") → [-28,-72,-83] |
valueOf(obj) | 任意對象 → String (靜態方法) | String.valueOf(123) → "123" |
3. 字符訪問與查找
String s = "hello world";
char c = s.charAt(4); // 'o'
int idx = s.indexOf("lo"); // 3
int idx2 = s.indexOf('o', 5); // 7 從索引5開始找字符'o'
int last = s.lastIndexOf("l"); // 9
4. 截取與子串
String s = "0123456789";
String sub1 = s.substring(2, 5); // "234" [2,5)
String sub2 = s.substring(3); // "3456789" 從3到結尾
5. 分割字符串
String s = "apple,banana,orange";
String[] arr = s.split(","); // ["apple","banana","orange"]
String[] arr2 = s.split(",", 2); // 限制分割數量 ["apple","banana,orange"]
// split 參數為正則,特殊字符需轉義:split("\\|")
6. 大小寫轉換
String s = "Hello";
s.toUpperCase(); // "HELLO"
s.toLowerCase(); // "hello"
// 區域敏感版本:toUpperCase(Locale)
7. 前綴/後綴判斷
"test.jpg".startsWith("test"); // true
"test.jpg".endsWith(".jpg"); // true
8. 內容比較
| 方法 | 區分大小寫 | 說明 |
equals(str) | 是 | 標準內容比較 |
equalsIgnoreCase(str) | 否 | 忽略大小寫比較 |
compareTo(str) | 是 | 字典序比較,返回負/0/正 |
compareToIgnoreCase(str) | 否 | 忽略大小寫字典序 |
9. 替換與修剪
"a b c".replace(' ', '-'); // "a-b-c" 字符替換
"a b c".replace(" ", "-"); // "a-b-c" 字符串替換
"a b c".replaceAll("\\s+", "-"); // "a-b-c" 正則替換所有空白
" abc ".trim(); // "abc" 去首尾空白
10. 其他實用方法
length():字符數(char 代碼單元數,補充字符計為 2)。
isEmpty():長度為 0。
contains(CharSequence):是否包含子序列。
format(String, Object...):格式化字符串,如 String.format("%.2f", 3.14159) → "3.14"。
join(CharSequence, CharSequence...) (JDK 8+):String.join("-", "a","b","c") → "a-b-c"。