我正在使用以下代码检查字符串是否为空
if( !Index2.toString().isEmpty()){
....
}
但我遇到以下错误
java.lang.NullPointerException
你的Index2
变量null
有价值。这就是你得到错误的原因。具体来说,错误在这里:
Index2.toString()
假设您的Index2
变量不同于null
,您的代码将起作用。为了使您的代码正常工作,您可以验证您的代码Index2
是否不同于null
或添加一个try/catch
处理NullPointerException
.
第一种方式:
if( Index2 != null && !Index2.toString().isEmpty()){
//...
}
第二种方式:
try {
if( !Index2.toString().isEmpty()){
//...
}
} catch (NullPointerException npe) {
//handle the Exception...
}
恕我直言,我会使用第一种方式。
检查 String 是否为 null 以及检查 String 中的空格,因为即使我们在 String 中有一个空格作为 myString=" "; myString.isEmpty() 将返回 false 。所以请考虑上面的情况,我会建议:
if (myString != null && myString.trim().length() != 0 )
return true;
还要检查 Null。
if( Index2!=null && !Index2.toString().isEmpty()){
....
}
apache.commons 包中有一个 StringUtils 类,它有很多有用的方法,比如
StringUtils.isEmpty(theString)
这将进行两个比较, != null 和 isEmpty 并且看起来更好。
这是您应该为您的案例检查空的方式:
if( Index2 == null || Index2.toString() == null ||
Index2.toString().length() == 0)
// it is empty
使用以下代码:
if(Index2!=null){
if( !Index2.toString().isEmpty()){
....
}
}
isEmpty()和null没有任何关系。首先检查 String 的值是否等于"" - 或者您可以说如果它的长度仅为且仅为 0,它将返回 true。其次是检查其初始化。
如果需要,您应该检查这两种情况,就像这样,
if( str != null && !str.isEmpty() ) { ... }
或者
if( str != null && !str.equals("") ) { ... }
或者在你的情况下使用它,
if(index2 != null) { if( index2.toString() != null && !index2.toString().isEmpty() ) { ... } }