isEmpty 和 isBlank 的用法区别
也许你两个都不知道,也许你除了isEmpty
/isNotEmpty
/isNotBlank
/isBlank
外,并不知道还有isAnyEmpty
/isNoneEmpty
/isAnyBlank
/isNoneBlank
的存在, come on ,让我们一起来探索org.apache.commons.lang3.StringUtils;
这个工具类.
isEmpty系列
StringUtils.isEmpty()
是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致 isEmpty(" ")=false
1 2 3 4 5 6 7 8 9 | StringUtils.isEmpty( null ) = true StringUtils.isEmpty( "" ) = true StringUtils.isEmpty( " " ) = false StringUtils.isEmpty(“bob”) = false StringUtils.isEmpty( " bob " ) = false /** * * <p>NOTE: This method changed in Lang version 2.0. * It no longer trims the CharSequence. * That functionality is available in isBlank().</p> * * @param cs the CharSequence to check, may be null * @return {@code true} if the CharSequence is empty or null * @since 3.0 Changed signature from isEmpty(String) to isEmpty(CharSequence) */ public static boolean isEmpty( final CharSequence cs) { return cs == null || cs.length() == 0 ; } |
StringUtils.isNotEmpty()
相当于不为空 , = !isEmpty()
1 2 3 | public static boolean isNotEmpty( final CharSequence cs) { return !isEmpty(cs); } |
StringUtils.isAnyEmpty()
是否有一个为空,只有一个为空,就为true.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | StringUtils.isAnyEmpty( null ) = true StringUtils.isAnyEmpty( null , “foo”) = true StringUtils.isAnyEmpty( "" , “bar”) = true StringUtils.isAnyEmpty(“bob”, “”) = true StringUtils.isAnyEmpty( " bob " , null ) = true StringUtils.isAnyEmpty( " " , “bar”) = false StringUtils.isAnyEmpty(“foo”, “bar”) = false /**<br> * @param css the CharSequences to check, may be null or empty * <br> * @return {@code true} if any of the CharSequences are empty or null * <br> * @since 3.2 <br> */ public static boolean isAnyEmpty( final CharSequence... css) { if (ArrayUtils.isEmpty(css)) { return true ; } for ( final CharSequence cs : css){ if (isEmpty(cs)) { return true ; } } return false ; } |
StringUtils.isNoneEmpty()
相当于!isAnyEmpty(css)
, 必须所有的值都不为空才返回true
1 2 | /**<br> * <p>Checks if none of the CharSequences are empty ("") or null.</p> <br> * <pre> StringUtils.isNoneEmpty(null) = false <br> * StringUtils.isNoneEmpty(null, "foo") = false <br> * StringUtils.isNoneEmpty("", "bar") = false <br> * StringUtils.isNoneEmpty("bob", "") = false <br> * StringUtils.isNoneEmpty(" bob ", null) = false <br> * StringUtils.isNoneEmpty(" ", "bar") = true <br> * StringUtils.isNoneEmpty("foo", "bar") = true <br> * </pre> <br> * @param css the CharSequences to check, may be null or empty <br> * @return {@code true} if none of the CharSequences are empty or null <br> * @since 3.2 <br> */ public static boolean isNoneEmpty( final CharSequence... css) { |
isBank系列
StringUtils.isBlank()
是否为真空值(空格或者空值)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | StringUtils.isBlank( null ) = true StringUtils.isBlank( "" ) = true StringUtils.isBlank( " " ) = true StringUtils.isBlank(“bob”) = false StringUtils.isBlank( " bob " ) = false /** * <p>Checks if a CharSequence is whitespace, empty ("") or null.</p> * @param cs the CharSequence to check, may be null * @return {@code true} if the CharSequence is null, empty or whitespace * @since 2.0 * @since 3.0 Changed signature from isBlank(String) to isBlank(CharSequence) */ public static boolean isBlank( final CharSequence cs) { int strLen; if (cs == null || (strLen = cs.length()) == 0 ) { return true ; } for ( int i = 0 ; i < strLen; i++) { if (Character.isWhitespace(cs.charAt(i)) == false ) { return false ; } } return true ; } |
StringUtils.isNotBlank()
是否真的不为空,不是空格或者空值 ,相当于!isBlank();
1 2 3 | public static boolean isNotBlank( final CharSequence cs) { return !isBlank(cs); } |
StringUtils.isAnyBlank()
是否包含任何真空值(包含空格或空值)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | StringUtils.isAnyBlank( null ) = true StringUtils.isAnyBlank( null , “foo”) = true StringUtils.isAnyBlank( null , null ) = true StringUtils.isAnyBlank( "" , “bar”) = true StringUtils.isAnyBlank(“bob”, “”) = true StringUtils.isAnyBlank( " bob " , null ) = true StringUtils.isAnyBlank( " " , “bar”) = true StringUtils.isAnyBlank(“foo”, “bar”) = false /** * <p>Checks if any one of the CharSequences are blank ("") or null and not whitespace only..</p> * @param css the CharSequences to check, may be null or empty * @return {@code true} if any of the CharSequences are blank or null or whitespace only * @since 3.2 */ public static boolean isAnyBlank( final CharSequence... css) { if (ArrayUtils.isEmpty(css)) { return true ; } for ( final CharSequence cs : css){ if (isBlank(cs)) { return true ; } } return false ; } |
StringUtils.isNoneBlank()
是否全部都不包含空值或空格
1 2 3 4 5 6 7 8 9 10 11 12 | StringUtils.isNoneBlank( null ) = false StringUtils.isNoneBlank( null , “foo”) = false StringUtils.isNoneBlank( null , null ) = false StringUtils.isNoneBlank( "" , “bar”) = false StringUtils.isNoneBlank(“bob”, “”) = false StringUtils.isNoneBlank( " bob " , null ) = false StringUtils.isNoneBlank( " " , “bar”) = false StringUtils.isNoneBlank(“foo”, “bar”) = true /**<br> * <p>Checks if none of the CharSequences are blank ("") or null and whitespace only..</p> * <br> * @param css the CharSequences to check, may be null or empty * @return {@code true} if none of the CharSequences are blank or null or whitespace only * <br> * @since 3.2 <br>*/ public static boolean isNoneBlank( final CharSequence... css) { return !isAnyBlank(css); } |
StringUtils的其他方法
可以参考官方的文档,里面有详细的描述,有些方法还是很好用的.
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html
来源:blog.csdn.net/moshowgame/article/details/102914895
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话