首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java String.trim() 方法詳解:去除首尾空白字元的完整指南

     編輯:程式設計綜合問答

方法簽名

public String trim()

功能定義

回傳一個新字串,移除原字串開頭與結尾的空白字元。原字串不變 (String 不可變)。

何謂「空白字元」?

Unicode 碼點 <= ' ' (U+0020),包含:

  • 空格
  • 製表符 \t (U+0009)
  • 換行 \n (U+000A)
  • 歸位 \r (U+000D)
  • 其他控制字元 (U+0000 ~ U+001F)

程式碼範例

String s1 = "  Hello World  ";
String s2 = s1.trim();
System.out.println("[" + s1 + "]"); // [  Hello World  ] 原字串不變
System.out.println("[" + s2 + "]"); // [Hello World]     新字串去除首尾空格

String s3 = "\t\n  Test  \r\n";
System.out.println("[" + s3.trim() + "]"); // [Test] 移除各類空白

// 中間空白不受影響
String s4 = "A  B  C";
System.out.println(s4.trim()); // "A  B  C"

常見誤區與正確替代方案

誤區正確做法
以為能移除中間空格用 replaceAll("\\s+", " ") 合併多空格
以為能移除全形空格 (U+3000)用 replaceAll("[\\s\\u3000]+", "") 或 Apache Commons StringUtils.trim()
用於 null 字串先判空或用 Objects.toString(str, "").trim()

進階:Java 11+ 新增方法

String s = "  Hi  ";
s.strip();      // 同 trim,但使用 Unicode 空白字元定義 (更嚴謹)
s.stripLeading();  // 僅移除開頭
s.stripTrailing(); // 僅移除結尾
s.isBlank();    // 僅含空白字元 (或空字串) 回傳 true

效能提示

  • trim() 會建立新字串物件,高頻呼叫 (如大迴圈) 產生大量暫時物件,增加 GC 壓力。
  • 若只需判斷是否為空白,用 isBlank() 避免建立新字串。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved