为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查我的字符串是否等于null?

如何检查我的字符串是否等于null?

慕婉清6462132 2019-10-15 14:32:23
仅当我的字符串具有有意义的值时,我才想执行某些操作。所以,我尝试了这个。if (!myString.equals("")) {doSomething}和这个if (!myString.equals(null)) {doSomething}和这个if ( (!myString.equals("")) && (!myString.equals(null))) {doSomething}和这个if ( (!myString.equals("")) && (myString!=null)) {doSomething}和这个if ( myString.length()>0) {doSomething}而且在所有情况下doSomething,尽管我的字符串为EMPTY,但我的程序仍然有效。等于null。那么,这有什么问题呢?添加:我找到了问题的原因。该变量被声明为字符串,结果,null分配给该变量的结果被转换为"null"!因此,if (!myString.equals("null"))作品。
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

if (myString != null && !myString.isEmpty()) {

  // doSomething

}

作为进一步的评论,您应该在equals合同中知道这个术语:


来自Object.equals(Object):


对于任何非null的参考值x,x.equals(null)应为return false。


与之比较的方法null是使用x == null和x != null。


此外,x.field并x.method()抛出NullPointerException如果x == null。


查看完整回答
反对 回复 2019-10-15
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

如果myString是null,则调用myString.equals(null)或myString.equals("")将失败,并显示NullPointerException。您不能在null变量上调用任何实例方法。


首先检查null是否是这样的:


if (myString != null && !myString.equals("")) {

    //do something

}

这将利用短路评估来避免.equalsif myString检查失败。


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 636 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信