420

我正在解析 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

4

5 回答 5

573

检查 null 或空或仅包含空格的字符串的正确方法如下:

if(str != null && !str.trim().isEmpty()) { /* do your stuffs here */ }
于 2013-02-06T04:14:37.147 回答
379

您可以利用 Apache CommonsStringUtils.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
于 2013-02-06T04:14:26.817 回答
100

您可以使用 Apache commons-lang

StringUtils.isEmpty(String str) - 检查字符串是否为空 ("") 或 null。

或者

StringUtils.isBlank(String str) - 检查字符串是否为空格、空 ("") 或 null。

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

于 2013-02-06T04:28:38.280 回答
35
import com.google.common.base.Strings;

if(!Strings.isNullOrEmpty(String str)) {
   // Do your stuff here 
}
于 2014-05-13T12:28:53.183 回答
33

这样您可以检查字符串是否不为空且不为空,同时考虑空格:

boolean isEmpty = str == null || str.trim().length() == 0;
if (isEmpty) {
    // handle the validation
}
于 2014-05-13T13:07:14.037 回答