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

StringUtils 核心方法詳解:isEmpty vs isBlank、trim 與 strip 差異全攻略

     編輯:Java 綜合教學

Apache Commons Lang StringUtils 空值判斷與字串修剪完全指南

StringUtils 是 JDK String 方法的強力補充,所有方法均為 static 且 null-safe(傳入 null 不拋 NPE)。本文詳細對比核心方法差異。

空值判斷四大方法對比

輸入值isEmptyisNotEmptyisBlankisNotBlank
nulltruefalsetruefalse
""truefalsetruefalse
" "falsetruetruefalse
"\t\n\f\r"falsetruetruefalse
"\b"falsetruefalsetrue
"bob"falsetruefalsetrue
" bob "falsetruefalsetrue

核心差異總結

  • isEmpty / isNotEmpty:僅判斷 null 或 length()==0,空白字元視為非空
  • isBlank / isNotBlank:判斷 null、length()==0 或 全由空白字元組成(包含空格、\t、\n、\f、\r),\b(單字邊界)不視為空白

修剪方法三組六式對比

方法處理字元null 輸入結果為空時
trim()控制字元 (char ≤ 32)返回 null返回 ""
trimToNull()控制字元 (char ≤ 32)返回 null返回 null
trimToEmpty()控制字元 (char ≤ 32)返回 ""返回 ""
strip()空白字元 (Character.isWhitespace)返回 null返回 ""
stripToNull()空白字元返回 null返回 null
stripToEmpty()空白字元返回 ""返回 ""

關鍵差異:trim vs strip

String s = " \b \t \n \f \r ";
StringUtils.trim(s)   // ""          - 移除所有控制字元含 \b
StringUtils.strip(s)  // "\b"        - 僅移除空白字元,保留 \b
  • trim():基於 char ≤ 32,範圍較廣(含 \b、\x00 等)
  • strip():基於 Character.isWhitespace(),符合 Unicode 空白字元標準,更精確
  • 建議優先使用 strip 系列,語意更清晰

實戰建議

  1. 檢查使用者輸入是否有效內容:用 isNotBlank()
  2. 檢查資料庫欄位是否為空:用 isNotEmpty()
  3. 清理前後端傳輸字串:用 stripToEmpty() 或 stripToNull()
  4. 避免直接用 String.trim(),它不支援 null 且行為與 strip() 不同

精準選擇 StringUtils 方法,能寫出更健壯、語意更清晰的字串處理程式碼。

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