我有包含数字和文本的字符串。(数字也有十进制值。)我想检查字符串仅包含带十进制值的数字。
这是字符串:
String testValue = "One Time Password(OTP) for Debit Card ending 1234 is 359573. Pls use this OTP at HDFC Bank ATM(Language selection screen) to create your ATM PIN before 27Jan15"
Run Code Online (Sandbox Code Playgroud)
我正在提取该值以仅获取另一段代码中的数字。我将其存储在 testValue 中。有时我收到像上面这样的完整消息,我试图查找 testValue 是否只有数字......所以我尝试了以下操作:
if (Pattern.matches("[a-zA-Z]+", testValue ) == false && testValue.length() > 2)
{
Log.e("True","Only numbers);
}
Run Code Online (Sandbox Code Playgroud)
这是打印 True。
if (testValue.contains("[0-9]+"))
{
Log.e("True","Only numbers);
}
Run Code Online (Sandbox Code Playgroud)
这也是打印 True 。
if (testValue.matches(".*\\d+.*")
{
Log.e("True","Only numbers);
}
Run Code Online (Sandbox Code Playgroud)
这也是打印 True 。
上述所有条件都打印正确,我不知道为什么,因为它包含数字和字母?
如何检查 testValue 是否只有数字(也是小数)
谢谢!
Pattern.matches("[a-zA-Z]+", testValue ) == falsetestValue如果不是所有字母, 则为真。
testValue.contains("[0-9]+")如果 中至少有一位数字,则返回 true testValue。
testValue.matches(".*\\d+.*")如果 中至少有一位数字,也返回 true testValue。
要仅测试数字,请使用中间的数字,但带有matches():
testValue.matches("[0-9]+")
如果您还想允许.后面带有一位或多位数字的选项,您可以使用:
testValue.matches("[0-9]+(\\.[0-9]+)?")
| 归档时间: |
|
| 查看次数: |
3369 次 |
| 最近记录: |