如何检查我的字符串是否等于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
}

在所有情况下,尽管我的字符串是空的,但我的程序还是`做了一些事情'。它等同于 "空"。那么,这有什么问题吗?

补充:

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

if (myString != null && !myString.isEmpty()) {
  // doSomething
}

作为进一步的评论,你应该注意到 "平等 "合同中的这个术语。

从[Object.equals(Object)](http://java.sun.com/javase/6/docs/api/java/lang/Object.html#equals%28java.lang.Object%29)。

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

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

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

评论(4)

你需要检查myString对象是否为null

if (myString != null) {
    doSomething
}
评论(0)

试试吧。

myString!=null && myString.length()>0
评论(2)