isEmpty和isNull()区别:

转自:https://cloud.tencent.com/developer/article/1171797?from=article.detail.1007616

 

一个NULL字符串一定是一个空串,

一个空串未必是一个NULL字符串。

 

例如:

QString().isNull():   //结果为true

QString().isEmpty();  //结果为true

QString("").isNull();   //结果为false

QString("").isEmpty();   //结果为true

 

批注:  一个NULL字符串就是使用QString的默认构造函数或者使用(const char*)0作为参数的构造函数创建的字符串对象。

QString((const char*)0).isNull();   //结果为true

 

 

====================================================

 (二)转自:https://baijiahao.baidu.com/s?id=1708577968844567937&wfr=spider&for=pc

java开发技术之isEmpty 和 isBlank 区别

 

1)isEmpty

判断字符串是否为空字符串,只要有一个任意字符(包括空白字符)就不为空。

来看 isEmpty 的方法源码:

public static boolean isEmpty(CharSequence cs) {return cs == null || cs.length() == 0;}

看见没,这个方法只判断了是为为 null 或者长度为 0。

意味着,如果用户输入 " " 等空白字符,这个方法就不通过了,结果就是不为空了。

 

如验证输入以下内容:

 

2、isBlank

判断字符串是否为空字符串,全部空白字符也为空。

来看 isBlank 的方法源码:

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

看见没,第 7 行,只要有一个字符不为空白字符就返回 false,也就是说,如果全部都为空白字符就返回 true,也就是全部空白字符也为空。

 

如验证输入以下内容:

 

这时候,如果用户输入 " " 等空白字符,这个方法也返回空了,这也是大部分业务场景下我们期望出现的结果。

 

isEmpty 和 isBlank 怎么选?

 

很明显,我们要判断一个字符串为空,绝大部分情况下 "空白字符" 也要为空的,严谨来说肯定要用 isBlank,虽然 isEmpty 也可以,但如果在最前端的接口不被拦截掉,请求到了后端的服务、数据库,就可能会造成压力,甚至是系统异常,这是完全可以避免的。

但万事也没有绝对,如果你的程序可以接受任意字符,包括 "空白字符",那就要选择 isEmpty,isBlank 会拦截所有空白字符,就达不到要求。

 

 

 

===============================================================================

(三) 转自:https://blog.csdn.net/qq_26620955/article/details/79555385?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-79555385-blog-111601108.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-79555385-blog-111601108.pc_relevant_default&utm_relevant_index=1

  • isEmpty:已经初始化的对象,内容为空。
          判断某字符串是否为空,为空的标准是 str==null或 str.length()==0 
 
  1.     StringUtils.isEmpty(null) = true
  2.     StringUtils.isEmpty("") = true
  3.     StringUtils.isEmpty(" ") = false//注意在 StringUtils 中空格作非空处理
  4.     StringUtils.isEmpty(" ") = false
  5.     StringUtils.isEmpty("bob") = false
  6.     StringUtils.isEmpty(" bob ") = false
      isBlank :字符串是实际有意义的内容
  1. StringUtils.isBlank(null) = true
  2. StringUtils.isBlank("") = true
  3. StringUtils.isBlank(" ") = true
  4. StringUtils.isBlank(" ") = true
  5. StringUtils.isBlank("\t \n \f \r") = true //对于制表符、换行符、换页符和回车符
  6. StringUtils.isBlank() //均识为空白符
  7. StringUtils.isBlank("\b") = false //"\b"为单词边界符
  8. StringUtils.isBlank("bob") = false
  9. StringUtils.isBlank(" bob ") = false
如果obj是null的话调用obj.isEmpty()
抛NullpointException
因为那个时候JDK不知道obj是什么东西,所以根本没办法调用

 

posted @   sensen~||^_^|||&  阅读(252)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示