检查Java中的字符串是空还是null

时间:2013-02-06 04:12:08

标签: java

我正在解析HTML数据。当要解析的单词不匹配时,String可能为null或为空。

所以,我这样写了:

if(string.equals(null) || string.equals("")){
    Log.d("iftrue", "seem to be true");
}else{
    Log.d("iffalse", "seem to be false");
}

当我删除String.equals("")时,它无法正常工作。

我认为String.equals("")不正确。

如何才能最好地检查空String

5 个答案:

答案 0 :(得分:411)

检查null或空的正确方法如下:

if(str != null && !str.isEmpty()) { /* do your stuffs here */ }

答案 1 :(得分:284)

您可以利用Apache Commons StringUtils.isEmpty(str),它会检查空字符串并正常处理null

示例:

System.out.println(StringUtils.isEmpty("")); // true
System.out.println(StringUtils.isEmpty(null)); // true

Google Guava还提供了类似的,可能更易于阅读的方法:Strings.isNullOrEmpty(str)

示例:

System.out.println(Strings.isNullOrEmpty("")); // true
System.out.println(Strings.isNullOrEmpty(null)); // true

答案 2 :(得分:51)

您可以使用Apache commons-lang

StringUtils.isEmpty(String str) - 检查String是否为空(“”)或null。

StringUtils.isBlank(String str) - 检查字符串是否为空格,为空(“”)或为空。

后者考虑一个由空格或特殊字符组成的字符串,例如“”也是空的。请参阅java.lang.Character.isWhitespace API

答案 3 :(得分:23)

这样你检查字符串是否为空而不是空,也考虑空格:

boolean isEmpty = str == null || str.trim().length() == 0;
if (isEmpty) {
    // handle the validation
}

答案 4 :(得分:12)

import com.google.common.base

if(!Strings.isNullOrEmpty(String str)) {
   // Do your stuff here 
}