Java String 類常用操作全攻略
String 是 Java 中使用頻率最高的類,理解其不可變特性與豐富 API 對高效開發至關重要。本文分類整理獲取判斷、轉換、替換、切割、子串、大小寫/去空格/比較等核心操作,並附帶代碼示例。
一、String 概述
- 不可變性:
String 對象一旦創建,值不能改變,所有修改操作均返回新對象。
equals() 比較內容,== 比較引用。
String s1 = "abc"(常量池 1 個對象),String s2 = new String("abc")(堆 + 常量池共 2 個對象)。
二、獲取與判斷
| 方法 | 說明 |
int length() | 字符長度 |
char charAt(int index) | 指定位置字符 |
int indexOf(int ch) | 首次出現位置 |
int indexOf(String str, int fromIndex) | 從指定位置查找子串 |
int lastIndexOf(String str) | 最後一次出現位置 |
boolean contains(CharSequence s) | 是否包含子串 |
boolean isEmpty() | 是否為空串 |
boolean startsWith(String prefix) | 是否以指定前綴開頭 |
boolean endsWith(String suffix) | 是否以指定後綴結尾 |
boolean equals(Object anObject) | 內容比較 |
boolean equalsIgnoreCase(String anotherString) | 忽略大小寫比較 |
示例
String str = "abcdeakpf";
System.out.println(str.length()); // 9
System.out.println(str.charAt(4)); // e
System.out.println(str.indexOf('a', 3)); // 5
System.out.println(str.lastIndexOf("a")); // 5
String file = "ArrayDemo.java";
System.out.println(file.startsWith("Array")); // true
System.out.println(file.endsWith(".java")); // true
System.out.println(file.contains("Demo")); // true
三、轉換操作
字符數組 ⇄ String
char[] arr = {'a','b','c','d','e','f'};
String s = new String(arr, 1, 3); // "bcd"
char[] chs = s.toCharArray(); // 反向轉換
字節數組 ⇄ String(支持編碼)
byte[] bytes = "中文".getBytes("UTF-8");
String str = new String(bytes, "UTF-8");
基本類型 → String
String.valueOf(123); // "123"
String.valueOf(45.67); // "45.67"
四、替換、切割、子串
| 方法 | 說明 |
replace(char old, char new) | 字符替換 |
replace(CharSequence target, CharSequence replacement) | 子串替換 |
split(String regex) | 正則切割返回數組 |
substring(int begin) | 從 begin 到末尾 |
substring(int begin, int end) | [begin, end) 區間 |
示例
String s = "Hello java";
System.out.println(s.replace('a', 'n')); // "Hello jnvn"
System.out.println(s.replace("java", "world")); // "Hello world"
String[] names = "zhangsan,lisi,wangwu".split(",");
// [zhangsan, lisi, wangwu]
String str = "abcdef";
System.out.println(str.substring(2)); // "cdef"
System.out.println(str.substring(2, 4)); // "cd"
五、大小寫、去空格、比較
| 方法 | 說明 |
toUpperCase() | 轉大寫 |
toLowerCase() | 轉小寫 |
trim() | 去除首尾空格 |
compareTo(String anotherString) | 自然順序比較(Unicode 差值) |
示例
String s = " Hello Java ";
System.out.println(s.trim()); // "Hello Java"
System.out.println("acc".compareTo("aaa")); // 2 (c - a = 2)
性能提示: 頻繁拼接字符串請使用 StringBuilder(單線程)或 StringBuffer(多線程),避免產生大量中間對象。