我正在解析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
?
答案 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
}