正則表達式方案(推薦)
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringUtils {
public static String removeAllWhitespace(String str) {
if (str == null) return "";
// \s 匹配空格、制表符、換頁符、換行符等所有空白字符
Pattern p = Pattern.compile("\\s+");
Matcher m = p.matcher(str);
return m.replaceAll("");
}
public static void main(String[] args) {
String test = " Hello\tWorld\n\rFoo ";
System.out.println("原始: [" + test + "]");
System.out.println("處理後: [" + removeAllWhitespace(test) + "]");
// 輸出: 原始: [ Hello World
// Foo ] 處理後: [HelloWorldFoo]
}
}
替代方案:replaceAll 直接使用正則
String result = str.replaceAll("\\s+", "");
// 或針對特定字符
String result = str.replaceAll("[ \\t\\n\\r\\f]", "");
笨辦法(逐個替換,不推薦)
String s = "你要去除的字符串";
s = s.replace(" ", ""); // 空格
s = s.replace("\t", ""); // 制表符
s = s.replace("\n", ""); // 換行符
s = s.replace("\r", ""); // 回車符
s = s.replace("\f", ""); // 換頁符
常見空白字符對照表
| 轉義序列 | 含義 | Unicode |
| \s | 任意空白字符(含下列所有) | - |
| | 空格 | \u0020 |
| \t | 水平制表符 | \u0009 |
| \n | 換行符 | \u000A |
| \r | 回車符 | \u000D |
| \f | 換頁符 | \u000C |
性能提示
- 單次處理長字符串,
Pattern.compile 複用可提升性能。
- 極簡場景下
str.replaceAll("\\s+", "") 最簡潔。