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 10 11 12 13 14 15 16 17 18 | 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 20 21 22 23 | 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 /** * @param css the CharSequences to check, may be null or empty * @return {@code true} if any of the CharSequences are empty or null * @since 3.2 */ 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 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /** * <p>Checks if none of the CharSequences are empty ("") or null.</p> * * <pre> * StringUtils.isNoneEmpty(null) = false * StringUtils.isNoneEmpty(null, "foo") = false * StringUtils.isNoneEmpty("", "bar") = false * StringUtils.isNoneEmpty("bob", "") = false * StringUtils.isNoneEmpty(" bob ", null) = false * StringUtils.isNoneEmpty(" ", "bar") = true * StringUtils.isNoneEmpty("foo", "bar") = true * </pre> * * @param css the CharSequences to check, may be null or empty * @return {@code true} if none of the CharSequences are empty or null * @since 3.2 */ 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 19 20 21 22 23 24 | 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 21 22 23 24 25 | 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 13 14 15 16 17 | 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 /** * <p>Checks if none of the CharSequences are blank ("") or null and whitespace only..</p> * @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 * @since 3.2 */ 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

《《--扫描二维码关注他!
【Java知音】公众号,每天早上8:30为您准时推送一篇技术文章
在Java知音公众号内回复“面试题聚合”,送你一份Java面试题宝典。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
2019-08-05 Maven从入门到放弃