Android TextUtils.isDigitsOnly为空字符串返回true

时间:2017-06-26 13:39:09

标签: android

android.text.TextUtils.isDigitsOnly("")  

我使用上面的代码检查输入字符串是否有效,但isDigitOnly()函数返回true表示空字符串。

如何让它为空字符串返回false或者其他Android版本在功能中?

2 个答案:

答案 0 :(得分:7)

这样做:

boolean myIsDigitsOnly(String str) {
    if(str.isEmpty()) {
        return false;
    } else {
        return TextUtils.isDigitsOnly(str); 
    }
}

现在您调用自己的自定义方法:

myIsDigitsOnly(""); // returns false

正如Selvin正确提到的,这实际上是一个持续到今天的错误。请参阅here

答案 1 :(得分:1)

针对Kotlin用户

尽管这是一个老生常谈的问题,但答案是可以接受的,但建议通过遵循以下代码来改进科特林语的答案

fun String.myIsDigitsOnly(): Boolean {
   return TextUtils.isDigitsOnly(this) && this.isNotEmpty()
}

现在您可以像这样调用您的方法

"".myIsDigitsOnly() // returns false

"123523423".myIsDigitsOnly() // returns false