StringUtils.isNotBlank和StringUtils.isNotEmpty的区别

在 Java 的org.apache.commons.lang3.StringUtils工具类中,isNotBlank()isNotEmpty()是两个常用的字符串判断方法,它们的主要区别在于对空白字符(whitespace)的处理上:

StringUtils.isNotEmpty(CharSequence cs)

判断逻辑:当字符串不为null且长度大于 0 时返回true

特点:不忽略空白字符,只要字符串不是null且不是空字符串("")就会返回true

示例:

StringUtils.isNotEmpty(null)      // false
StringUtils.isNotEmpty("")        // false
StringUtils.isNotEmpty(" ")       // true(包含空格,长度>0)
StringUtils.isNotEmpty("hello")   // true
StringUtils.isNotBlank(CharSequence cs)

判断逻辑:当字符串不为null、长度大于 0 且不包含空白字符时返回true

特点:会忽略空白字符(空格、制表符\t、换行符\n等),相当于先调用trim()再判断

StringUtils.isNotBlank(null)      // false
StringUtils.isNotBlank("")        // false
StringUtils.isNotBlank(" ")       // false(仅包含空格,trim后为空)
StringUtils.isNotBlank("  a  ")   // true(trim后为"a",非空)
StringUtils.isNotBlank("hello")   // true

总结区别:

  • isNotEmpty():仅排除null和空字符串""
  • isNotBlank():排除null、空字符串""和纯空白字符串(如" ""\t\n"等)
实际开发中,isNotBlank()更常用在需要验证用户输入的场景(如表单提交),因为用户可能会输入空格等无意义的空白字符;而isNotEmpty()适用于需要保留空白字符的场景(如需要严格区分空字符串和空格的情况)。

 

posted @ 2025-09-13 19:02  罗毅豪  阅读(10)  评论(0)    收藏  举报