Android TextUtils isEmpty vs String.isEmpty

时间:2016-04-03 17:19:24

标签: java android

TextUtils.isEmpty(string)string.isEmpty之间有什么区别?

两者都做同样的操作。

使用TextUtils.isEmpty(string)是否有利?

5 个答案:

答案 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

可能就是您想要的