首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java 移除字串中所有空白字元的四種實用方法

     編輯:Java 程式設計入門

在 Java 開發中,處理字串空白是常見需求。根據業務場景不同,可能需要移除首尾空格、所有空格,甚至包含製表符、換行符等不可見空白字元。本文整理四種核心方法,並說明適用場景與效能差異。

1. trim() —— 僅移除首尾空格

最基礎的方法,只會刪除字串開頭與結尾的空白字元(空格、Tab、換行等),中間的空白保持不變。

String str = "  Hello World  ";
String result = str.trim(); // "Hello World"

適用場景:表單輸入前後端去除多餘空白、日誌清理等。

2. replace(" ", "") —— 移除所有半形空格

使用 String.replace(CharSequence, CharSequence) 可將所有半形空格(U+0020)替換為空字串,但無法處理全形空格、Tab、換行等。

String str = " H e l l o ";
String result = str.replace(" ", ""); // "Hello"

注意:此方法不支援正則表達式,效能優於 replaceAll。

3. replaceAll("\\s+", "") —— 移除所有空白字元(推薦)

\\s 是正則表達式的空白字元類別,涵蓋:

  • 半形空格
  • 製表符 \t
  • 換行符 \n / \r
  • 換頁符 \f
  • 全形空格  (視 JVM 實作而定)

+ 表示一次匹配一個或多個連續空白,避免重複替換提升效能。

String str = "  Hello\tWorld\n";
String result = str.replaceAll("\\s+", ""); // "HelloWorld"

適用場景:資料清洗、序列化前處理、比對不含空白的字串。

4. replaceAll("\\s*", "") —— 兼容零寬空白

* 代表零次或多次,理論上可處理零寬空白(Zero-width space),但實務上 \\s+ 已足夠。若字串極長,+ 效能更佳。

效能與選擇建議

方法處理範圍正則支援相對效能
trim()首尾否最高
replace(" ", "")所有半形空格否高
replaceAll("\\s+", "")所有空白字元是中
replaceAll("\\s*", "")所有空白字元(含零寬)是中偏低

最佳實務:
• 僅需去首尾 → trim()
• 只去半形空格且追求極致速度 → replace(" ", "")
• 通用移除所有空白 → replaceAll("\\s+", "")

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved