亲,平时开发是否注意过或研究过isEmpty/isBlank,是否看过他们的实现源码呢
前言
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,是否看过他们的实现源码呢相关推荐
- javaweb开发数码产品推荐平台系统设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
javaweb开发数码产品推荐平台系统设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 javaweb开发数码产品推荐平台系统设计与实现计算机毕业设计MyBatis+系统+LW文 ...
- C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码...
原文:C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github. ...
- C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码...
C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码 原文:C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码 前言 系列 ...
- C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码
我记得,之前在写安卓方面的文章的时候,有人就问过我.Xamarin.Android为什么打包出来这么大?随便一个HelloWord就20-30MB? 嗯..今天我们就来解决这个问题.. 我们先从指定一 ...
- C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码
本篇..基本可以算是Xamarin在应用开发过程中的核心了..真的很很很重要.. 想学习的..想用的..建议仔细阅读..嗯..打酱油的 ..快速滑倒下面点个推荐 - - 哈哈哈... 今天的学习内容? ...
- C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件),附源码
本篇..基本可以算是Xamarin在应用开发过程中的核心了..真的很很很重要.. 想学习的..想用的..建议仔细阅读..嗯..打酱油的 ..快速滑倒下面点个推荐 - - 哈哈哈... 今天的学习内容? ...
- 【珍藏】 2012.NET开发必看资料53个+经典源码77个—下载目录
2019独角兽企业重金招聘Python工程师标准>>> .NET 是 Microsoft XML Web services 平台.XML Web services 允许应用程序通过I ...
- 开发了一款基于 Flask 框架的在线电影网站系统(附 Python 源码)
文章目录 前言 项目介绍 源码获取 运行环境 安装依赖库 项目截图 首页展示图 视频展示页 视频播放页 后台管理页 整体架构设计图 项目目录结构图 前台功能模块图 后台功能模块图 本地运行图 前言 今 ...
- C#开发APP,ToolBar控件在Smobiler中的使用方式【附案例源码】——Smobiler移动开发平台...
控件说明 底部工具栏控件. 效果演示 其他效果 该界面为仿淘宝UI制作的一个简单的UI模板,源码获取方式请拉至文章末尾. 特色属性 属性 属性说明 Direction(相对布局) 容器主轴方向. Fl ...
最新文章
- javascript编写_如何通过编写自己的Web开发框架来提高JavaScript技能
- [SQL指令]使用 PIVOT 和 UNPIVOT,「扭转」查询的结果。
- 人工智能:物体检测之Faster RCNN模型
- kafka to mysql_Flink : kafka to mysql example
- nsa服务器win7系统,Win7系统访问NAS和Samba服务器失败怎么处理
- linux下telnet失败怎么处理,CentOS下telnet退出失败的解决办法
- 淘宝、飞猪、闲鱼都挂了,阿里云却正常?!
- Lc1047删除字符串中所有重复项
- OpenGL学习笔记_简介_环境配置_创建一个窗口实例
- Java中的BlockingQueue队列
- 快速批量打印工程图,这个工具少不了
- Linux命令 - tar命令
- python读取rtf文件_richtextbox怎样读取txt文件或rtf文件
- 微信小程序之移动端适配
- 仿照支付宝等——自动获取短信中的验证码
- android11 动态设置屏幕旋转方向
- 杯具的无线鼠标安装记
- MySQL-notes
- 微风:AI新手入门学习教程
- 企业信息化建设规划大纲