使用正则表达式检查字符串是否只包含一个数字

时间:2016-09-30 19:46:18

标签: java regex string digit

我正在编写算法,我需要检查一个字符串是否包含只有一个数字(不超过一个)。目前我有:

if(current_Operation.matches("\\d")){
...
}

还有更好的方法吗?感谢。

3 个答案:

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

这将确保整个字符串包含一个数字。 ^匹配行的开头,$匹配行的结尾。