Android TextUtils.isDigitsOnly对于空字符串返回true
我使用上面的代码检查输入字符串是否为有效数字,但检查空字符串的Android TextUtils.isDigitsOnly对于空字符串返回true,android,Android,我使用上面的代码检查输入字符串是否为有效数字,但检查空字符串的isDigitOnly()function returntrue 如何使空字符串返回false,或者存在其他Android内置函数?如正确所述,这实际上是一个一直持续到今天的错误。看 您可以通过以下方式绕过此问题: Java android.text.TextUtils.isDigitsOnly("") 现在,您可以调用自己的自定义方法: boolean myIsDigitsOnly(String str) { retu
isDigitOnly()
function returntrue
如何使空字符串返回false
,或者存在其他Android内置函数?如正确所述,这实际上是一个一直持续到今天的错误。看
您可以通过以下方式绕过此问题:
Java
android.text.TextUtils.isDigitsOnly("")
现在,您可以调用自己的自定义方法:
boolean myIsDigitsOnly(String str) {
return str.isEmpty() && TextUtils.isDigitsOnly(str);
}
Kotlin
在Kotlin中,您根本不需要TextUtils
。只需创建自己的扩展函数,如下所示:
myIsDigitsOnly(""); // returns false
感谢是谁启发我使Java变得更加简洁。适用于Kotlin用户 虽然这是一个已经被接受的老问题,但建议通过以下代码改进Kotlin语言的答案
fun String.isDigitsOnly() = all(Char::isDigit) && isNotEmpty()
现在您可以像这样调用您的方法
fun String.myIsDigitsOnly(): Boolean {
return TextUtils.isDigitsOnly(this) && this.isNotEmpty()
}
或
感谢您的回答和指向现有错误报告的位置。该漏洞创建于2012年1月。哇,在这里添加Kotlin代码是个好主意。我也这样做了,但使用了不同的方法+1.
"".myIsDigitsOnly() // returns false
"123523423".myIsDigitsOnly() // returns false