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

StringUtils工具類:isBlank與isEmpty的核心區別詳解

     編輯:Java 綜合教學

StringUtils工具類:isBlank與isEmpty的核心區別詳解

在Java開發中,org.apache.commons.lang3.StringUtils 是處理字串判空的常用工具類。其中 isEmpty() 和 isBlank() 兩個方法雖然都用於判斷字串是否為「空」,但判定標準截然不同,混用極易引發Bug。

1. isEmpty(String str) — 嚴格判空

僅當字串為 null 或長度為 0("")時返回 true。空白字元(空格、Tab、換行等)視為非空。

StringUtils.isEmpty(null)      = true
StringUtils.isEmpty("")        = true
StringUtils.isEmpty(" ")       = false  // 含空格,非空
StringUtils.isEmpty("\t\n")    = false  // 含製表/換行,非空

2. isBlank(String str) — 寬鬆判空

當字串為 null、長度為 0、或僅由空白字元(whitespace)組成時返回 true。涵蓋空格、製表符(\t)、換行符(\n)、換頁符(\f)、回車符(\r)等。

StringUtils.isBlank(null)           = true
StringUtils.isBlank("")             = true
StringUtils.isBlank(" ")            = true   // 單個空格
StringUtils.isBlank("\t \n \f \r")  = true   // 混合空白字元
StringUtils.isBlank("\b")           = false  // \b 是單詞邊界符,非空白字元

3. 實戰建議

  • 表單驗證、用戶輸入檢查:優先用 isBlank(),避免「全空格」繞過校驗。
  • 數據庫非空字段、協議解析:必須區分「空字串」與「空白字串」時,用 isEmpty()。
  • 記住口訣:isEmpty 看長度,isBlank 看內容。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved