我正在编写算法,我需要检查一个字符串是否包含只有一个数字(不超过一个)。目前我有:
if(current_Operation.matches("\\d")){
...
}
还有更好的方法吗?感谢。
答案 0 :(得分:5)
您可以使用:
^\\D*\\d\\D*$
# match beginning of the line
# non digits - \D*
# one digit - \d
# non digits - \D*
# end of the line $
请参阅a demo on regex101.com(为了清晰起见,添加了换行符)。
答案 1 :(得分:1)
如果您觉得不使用正则表达式:
int numDigits = 0;
for (int i = 0; i < current_Operation.length() && numDigits < 2; ++i) {
if (Character.isDigit(currentOperation.charAt(i))) {
++numDigits;
}
}
return numDigits == 1;
答案 2 :(得分:-2)
使用正则表达式
/^\d$/
这将确保整个字符串包含一个数字。 ^
匹配行的开头,$
匹配行的结尾。