前言

org.apache.commons.lang.StringUtils 类提供了 String 的常用操作,最为常用的判空有如下两种 isEmpty(String str) 和 isBlank(String str)。

源码分析

我们通过源码来分析区别:

  • isEmpty & isNotEmpty
    public static boolean isEmpty(CharSequence cs) {return cs == null || cs.length() == 0;}public static boolean isNotEmpty(CharSequence cs) {return !isEmpty(cs);}
  • isBlank& isNotBlank
  public static boolean isBlank(CharSequence cs) {int strLen;if (cs != null && (strLen = cs.length()) != 0) {for(int i = 0; i < strLen; ++i) {if (!Character.isWhitespace(cs.charAt(i))) {return false;}}return true;} else {return true;}}public static boolean isNotBlank(CharSequence cs) {return !isBlank(cs);}

可以看到:

  • StringUtils.isEmpty(String str)判断某字符串是否为空,为空的标准是 str==null 或
    str.length()==0
  • StringUtils.isBlank(String str)判断某字符串是否为空或长度为 0 或由空白符 (whitespace) 构成
  • StringUtils.isNotEmpty(String str)等价于!isEmpty(String str)
  • StringUtils.isNotBlan(String str)等价于!isBlank(String str)

写在最后

StringUtils.isBlank(String str) 来执行判空操作,判断的条件更多更具体,特别是进行参数校验时,推荐使用。

另外,你们项目是否有isEmpty和isBlank混用的情况?

如果觉得有用,记得关注我哦

亲,平时开发是否注意过或研究过isEmpty/isBlank,是否看过他们的实现源码呢相关推荐

  1. javaweb开发数码产品推荐平台系统设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署

    javaweb开发数码产品推荐平台系统设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 javaweb开发数码产品推荐平台系统设计与实现计算机毕业设计MyBatis+系统+LW文 ...

  2. C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码...

    原文:C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github. ...

  3. C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码...

    C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码 原文:C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码 前言 系列 ...

  4. C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码

    我记得,之前在写安卓方面的文章的时候,有人就问过我.Xamarin.Android为什么打包出来这么大?随便一个HelloWord就20-30MB? 嗯..今天我们就来解决这个问题.. 我们先从指定一 ...

  5. C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码

    本篇..基本可以算是Xamarin在应用开发过程中的核心了..真的很很很重要.. 想学习的..想用的..建议仔细阅读..嗯..打酱油的 ..快速滑倒下面点个推荐 - - 哈哈哈... 今天的学习内容? ...

  6. C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件),附源码

    本篇..基本可以算是Xamarin在应用开发过程中的核心了..真的很很很重要.. 想学习的..想用的..建议仔细阅读..嗯..打酱油的 ..快速滑倒下面点个推荐 - - 哈哈哈... 今天的学习内容? ...

  7. 【珍藏】 2012.NET开发必看资料53个+经典源码77个—下载目录

    2019独角兽企业重金招聘Python工程师标准>>> .NET 是 Microsoft XML Web services 平台.XML Web services 允许应用程序通过I ...

  8. 开发了一款基于 Flask 框架的在线电影网站系统(附 Python 源码)

    文章目录 前言 项目介绍 源码获取 运行环境 安装依赖库 项目截图 首页展示图 视频展示页 视频播放页 后台管理页 整体架构设计图 项目目录结构图 前台功能模块图 后台功能模块图 本地运行图 前言 今 ...

  9. C#开发APP,ToolBar控件在Smobiler中的使用方式【附案例源码】——Smobiler移动开发平台...

    控件说明 底部工具栏控件. 效果演示 其他效果 该界面为仿淘宝UI制作的一个简单的UI模板,源码获取方式请拉至文章末尾. 特色属性 属性 属性说明 Direction(相对布局) 容器主轴方向. Fl ...

最新文章

  1. javascript编写_如何通过编写自己的Web开发框架来提高JavaScript技能
  2. [SQL指令]使用 PIVOT 和 UNPIVOT,「扭转」查询的结果。
  3. 人工智能:物体检测之Faster RCNN模型
  4. kafka to mysql_Flink : kafka to mysql example
  5. nsa服务器win7系统,Win7系统访问NAS和Samba服务器失败怎么处理
  6. linux下telnet失败怎么处理,CentOS下telnet退出失败的解决办法
  7. 淘宝、飞猪、闲鱼都挂了,阿里云却正常?!
  8. Lc1047删除字符串中所有重复项
  9. OpenGL学习笔记_简介_环境配置_创建一个窗口实例
  10. Java中的BlockingQueue队列
  11. 快速批量打印工程图,这个工具少不了
  12. Linux命令 - tar命令
  13. python读取rtf文件_richtextbox怎样读取txt文件或rtf文件
  14. 微信小程序之移动端适配
  15. 仿照支付宝等——自动获取短信中的验证码
  16. android11 动态设置屏幕旋转方向
  17. 杯具的无线鼠标安装记
  18. MySQL-notes
  19. 微风:AI新手入门学习教程
  20. 企业信息化建设规划大纲

热门文章

  1. 短信-股票代码002291 000524 002467 002582
  2. esap的第四版破解
  3. 2013年苹果Mac平台最重要的游戏盘点
  4. 【个人计划】告别英雄联盟,开始学习Python
  5. C#多线程下, 子线程如何让主线程执行方法
  6. 【网页分享到微博、微信、qq空间、qq】
  7. 腾讯地图发布收款车联网落地产品路宝盒子
  8. vue-cli build打包后CSS浏览器兼容前缀自动去除的问题
  9. 孔乙己堪比娱乐圈的顶流,鲁迅也很吃惊
  10. jQuery动画(jQuery预制动画,jQuery自定义动画,jQuery停止动画和延迟动画)