1

我正在使用以下代码检查字符串是否为空

if( !Index2.toString().isEmpty()){
  ....
}

但我遇到以下错误

java.lang.NullPointerException
4

7 回答 7

4

你的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...
}

恕我直言,我会使用第一种方式。

于 2012-10-12T06:39:14.793 回答
3

检查 String 是否为 null 以及检查 String 中的空格,因为即使我们在 String 中有一个空格作为 myString=" "; myString.isEmpty() 将返回 false 。所以请考虑上面的情况,我会建议:

  if (myString != null && myString.trim().length() != 0 ) 
               return true;
于 2013-05-03T06:59:16.523 回答
2

还要检查 Null。

if( Index2!=null && !Index2.toString().isEmpty()){
  ....
}
于 2012-10-12T06:39:48.787 回答
2

apache.commons 包中有一个 StringUtils 类,它有很多有用的方法,比如

StringUtils.isEmpty(theString)

这将进行两个比较, != null 和 isEmpty 并且看起来更好。

于 2012-10-12T06:42:50.637 回答
0

这是您应该为您的案例检查空的方式:

 if( Index2 == null || Index2.toString() == null || 
     Index2.toString().length() == 0)
     // it is empty
于 2012-10-12T06:40:31.293 回答
0

使用以下代码:

if(Index2!=null){
  if( !Index2.toString().isEmpty()){
    ....
  }
}
于 2012-10-12T06:41:07.283 回答
0

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() ) { ... } }

于 2012-10-12T07:21:49.597 回答