在Java中检查string是空还是空
我parsingHTML数据。 当要parsing的单词不匹配时, 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
?
检查null或空的正确方法是这样的:
if(str != null && !str.isEmpty()) { /* do your stuffs here */ }
您可以利用Apache Commons的StringUtils.isEmpty(str)
,它检查空string,并正常处理null
。
例:
System.out.println(StringUtils.isEmpty("")); // true System.out.println(StringUtils.isEmpty(null)); // true
谷歌Guava还提供了一个类似的,可能更容易阅读的方法: Strings.isNullOrEmpty(str)
。
例:
System.out.println(Strings.isNullOrEmpty("")); // true System.out.println(Strings.isNullOrEmpty(null)); // true
你可以使用Apache commons-lang
StringUtils.isEmpty(String str)
– 检查string是否为空(“”)或null。
要么
StringUtils.isBlank(String str)
– 检查一个string是否为空白,空(“”)或null。
后者考虑一个由空格或特殊字符组成的string,例如“”也是空的。 请参阅java.lang.Character.isWhitespace API
这样你检查string是否不为空而不是空的,也考虑到空的空间:
boolean isEmpty = str == null || str.trim().length() == 0; if (isEmpty) { // handle the validation }
if(!Strings.isNullOrEmpty(String str)) { // Do your stuff here }