浅聊 org.apache.commons.lang3 包中的2种判空方法


浅聊 org.apache.commons.lang3 包中的2种判空方法

在 Java 中,StringUtils.isBlank()StringUtils.isEmpty()是 Apache Commons Lang 工具类中常用的字符串判断方法,它们的主要区别在于对空白字符的处理方式:

1. 方法功能区别

  • StringUtils.isEmpty(CharSequence str)

    • 判断字符串是否为null或长度为 0

    • 仅当str == nullstr.length() == 0时返回true

    • 示例:

      isEmpty(null)      → true
      isEmpty("")        → true
      isEmpty("   ")     → false  // 空格字符串返回false
      isEmpty("hello")   → false
      
  • StringUtils.isBlank(CharSequence str)

    • 判断字符串是否为null、空字符串或仅包含空白字符

    • str == nullstr.length() == 0或全是空白字符(空格、制表符等)时返回true

    • 示例:

      isBlank(null)      → true
      isBlank("")        → true
      isBlank("   ")     → true  // 空格字符串返回true
      isBlank("hello")   → false
      

2. 哪个判断更全面?

StringUtils.isBlank()的判断范围更全面,因为它不仅检查null和空字符串,还会判断字符串是否仅由空白字符组成。

在实际开发中:

  • 当需要严格区分空字符串和空白字符串时,使用isEmpty()
  • 当需要将空白字符串视为 "空值" 处理时(更常见的场景),使用isBlank()

例如,在验证用户输入时,通常会使用isBlank(),因为用户输入的空格、制表符等应该被视为无效输入。


总结

针对不同场景上的应用,来区分StringUtils.isBlank()StringUtils.isEmpty()使用。2者主要是在空白字符(空格、制表符等)的逻辑判断上有区别

  • isBlank("   ")     → true  // 空格字符串返回true
    
  • isEmpty("   ")     → false  // 空格字符串返回false
    
SpringBoot
JAVA-技能点
知识点