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

新手上路,请多包涵

仅当我的字符串具有有意义的值时,我才想执行某些操作。所以,我尝试了这个。

 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 尽管我的字符串是空的。它等于 null 。那么,这有什么问题呢?

添加:

我找到了问题的原因。该变量被声明为字符串,因此,分配给该变量的 null 被转换为 "null" !所以, if (!myString.equals("null")) 有效。

原文由 Roman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 446
1 个回答
if (myString != null && !myString.isEmpty()) {
  // doSomething
}


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

来自 Object.equals(Object)

对于任何非空参考值 xx.equals(null) 应该 return false

null 比较的方法是使用 x == nullx != null

此外, x.fieldx.method() 抛出 NullPointerException 如果 x == null

原文由 polygenelubricants 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题