| 需求 | 方法 | 示例 | 說明 |
|---|---|---|---|
| 去除首尾空白 | trim() (Java 11+ strip()) | " a b ".trim() → "a b" | strip() 符合 Unicode 空白字符定義,推薦 |
| 去除**所有**空格 (僅空格 ' ') | replace(" ", "") | " a b ".replace(" ", "") → "ab" | 字符級替換,高性能,不支持製表符等 |
| 去除**所有**空白字符 (空格、\t、\n、\r 等) | replaceAll("\\s+", "") | "a\tb\nc".replaceAll("\\s+", "") → "abc" | 正則 \s 匹配所有 Unicode 空白,+ 合併連續 |
| 去除首尾並壓縮中間多空白為單空格 | strip().replaceAll("\\s+", " ") | " a b ".strip().replaceAll("\\s+", " ") → "a b" | 規範化字符串常用 |
public class SpaceRemover {
public static void main(String[] args) {
String s = " Hello\tWorld\nJava ";
System.out.println("原始: [" + s + "]");
System.out.println("trim: [" + s.trim() + "]");
System.out.println("strip: [" + s.strip() + "]");
System.out.println("replace空格: [" + s.replace(" ", "") + "]");
System.out.println("replaceAll\\s: [" + s.replaceAll("\\s+", "") + "]");
System.out.println("規範化: [" + s.strip().replaceAll("\\s+", " ") + "]");
}
}
原始: [ Hello World
Java ]
trim: [Hello World
Java]
strip: [Hello World
Java]
replace空格: [Hello World
Java]
replaceAll\s: [HelloWorldJava]
規範化: [Hello World Java]
// trim/strip : ~50 ms (原生優化)
// replace(" ", "") : ~80 ms (字符級快速路徑)
// replaceAll("\\s+", "") : ~300 ms (正則引擎開銷)
// replaceAll("\\s+", " ") : ~350 ms
strip(),舊版用 trim()。replace(" ", ""),最快且語義明確。replaceAll("\\s+", ""),預編譯 Pattern 可復用提速。char[] 複製非空白字符,避免對象創建。replaceAll 參數是正則,**$ . * + ? [ ] ( ) { } | \ ^** 等特殊字符需轉義。String.replace(CharSequence, CharSequence) (Java 5+) **不按正則**,直接字面替換,替換單字符用 replace(' ', '') 更快。StringBuilder 或字符數組。選對方法,代碼既快又清晰。