在 Java 中,StringUtils.isBlank()
和StringUtils.isEmpty()
是 Apache Commons Lang 工具类中常用的字符串判断方法,它们的主要区别在于对空白字符的处理方式:
StringUtils.isEmpty(CharSequence str)
判断字符串是否为null
或长度为 0
仅当str == null
或str.length() == 0
时返回true
示例:
isEmpty(null) → true
isEmpty("") → true
isEmpty(" ") → false // 空格字符串返回false
isEmpty("hello") → false
StringUtils.isBlank(CharSequence str)
判断字符串是否为null
、空字符串或仅包含空白字符
当str == null
、str.length() == 0
或全是空白字符(空格、制表符等)时返回true
示例:
isBlank(null) → true
isBlank("") → true
isBlank(" ") → true // 空格字符串返回true
isBlank("hello") → false
StringUtils.isBlank()
的判断范围更全面,因为它不仅检查null
和空字符串,还会判断字符串是否仅由空白字符组成。
在实际开发中:
isEmpty()
isBlank()
例如,在验证用户输入时,通常会使用isBlank()
,因为用户输入的空格、制表符等应该被视为无效输入。
针对不同场景上的应用,来区分StringUtils.isBlank()
和StringUtils.isEmpty()
使用。2者主要是在空白字符(空格、制表符等)的逻辑判断上有区别:
isBlank(" ") → true // 空格字符串返回true
isEmpty(" ") → false // 空格字符串返回false