如何检查我的字符串是否等于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,尽管我的字符串为EMPTY,但我的程序仍然有效。等于null。那么,这有什么问题呢?


添加:


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


慕婉清6462132
浏览 639回答 3
3回答

郎朗坤

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。

ABOUTYOU

如果myString是null,则调用myString.equals(null)或myString.equals("")将失败,并显示NullPointerException。您不能在null变量上调用任何实例方法。首先检查null是否是这样的:if (myString != null && !myString.equals("")) {    //do something}这将利用短路评估来避免.equalsif myString检查失败。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java