TextUtils.isEmpty(string)
和string.isEmpty
之间有什么区别?
两者都做同样的操作。
使用TextUtils.isEmpty(string)
是否有利?
答案 0 :(得分:60)
是的,TextUtils.isEmpty(string)
是首选。
对于string.isEmpty()
,空字符串值将抛出NullPointerException
TextUtils
将始终返回一个布尔值。
在代码中,前者只是calls the equivalent of the other,加上空检查。
return string == null || string.length() == 0;
答案 1 :(得分:5)
在班级TextUtils
public static boolean isEmpty(@Nullable CharSequence str) {
if (str == null || str.length() == 0) {
return true;
} else {
return false;
}
}
检查字符串长度是否为零,如果字符串为null则避免抛出NullPointerException
String
中的
public boolean isEmpty() {
return count == 0;
}
检查字符串长度是否仅为零,如果您尝试使用该字符串并且它为空,则可能会导致NullPointerException
。
答案 2 :(得分:5)
看看文档
表示他们指定的String#isEmpty:
布尔
是空的() 当且仅当length()为0时返回true。
以及TextUtils.isEmpty文档说明:
public static boolean isEmpty(CharSequence str)
如果字符串为null或0-length,则返回true。
所以主要区别在于使用TextUtils.isEmpty,你不关心或者不需要检查字符串是否为null引用,
在另一种情况下是。
答案 3 :(得分:2)
TextUtils.isEmpty()
在Android SDK中更好,因为它具有内部null检查功能,因此您无需在检查字符串是否为空之前检查字符串是否为null。
但是使用Kotlin,您可以使用String?.isEmpty()
和String?.isNotEmpty()
代替TextUtils.isEmpty()
和!TextUtils.isEmpty()
,这将使读者更友好
所以我认为最好在Kotlin中使用String?.isEmpty()
,在Android Java SDK中使用TextUtils.isEmpty()
答案 4 :(得分:0)
String?.isNullOrEmpty
可能就是您想要的