我想只执行一些操作,如果我的字符串有一个有意义的值。所以,我试了这个。如何检查我的字符串是否等于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"))
的作品。
'null'没有任何方法,所以也不是'equals()'。如果'myString'为'null',你会如何调用一个方法? :) – BalusC 2010-04-08 17:17:13
我可以建议你在if-block之前紧挨着'System.out.println(myString)',这样你可以看到那里有什么吗? – 2010-04-08 17:22:37
你怎么知道“它等于'null'”? – 2010-04-08 17:24:13