Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用正则表达式检查字符串是否只包含一个数字_Java_Regex_String_Digit - Fatal编程技术网

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

Java 使用正则表达式检查字符串是否只包含一个数字,java,regex,string,digit,Java,Regex,String,Digit,我正在编写一个算法,我需要检查字符串是否只包含一个数字(不超过一个)。目前我有: if(current_Operation.matches("\\d")){ ... } 有没有更好的方法来做这件事?谢谢。使用正则表达式 /^\d$/ 这将确保整个字符串包含一个数字。^匹配行首,$匹配行尾。您可以使用: ^\\D*\\d\\D*$ # match beginning of the line # non digits - \D* # one digit - \d # non digits - \

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

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

有没有更好的方法来做这件事?谢谢。

使用正则表达式

/^\d$/
这将确保整个字符串包含一个数字。
^
匹配行首,
$
匹配行尾。

您可以使用:

^\\D*\\d\\D*$
# match beginning of the line
# non digits - \D*
# one digit - \d
# non digits - \D*
# end of the line $

请参阅(为清晰起见,添加了换行符)

如果您希望不使用正则表达式:

int numDigits = 0;
for (int i = 0; i < current_Operation.length() && numDigits < 2; ++i) {
  if (Character.isDigit(currentOperation.charAt(i))) {
    ++numDigits;
  }
}
return numDigits == 1;
int numDigits=0;
对于(int i=0;i
这种方式有什么问题吗?模式:
^\D*\D*$
。似乎我用这种方式没有得到正确的结果。让我仔细检查字符串是否包含任何内容?如果
std.ascii
中的(str.length==1&&isDigit(str[0])
isDigit
足以进行基本检查,我会尝试编写
。请注意,“d”标记用于d编程语言,请不要仅仅因为您碰巧有一个“d”而使用它在您的示例中,他要求检查字符串是否包含一个数字,并且不仅仅是一个数字。但它应该只包含一个数字digit@WebFreak001是的,你是对的。字符串本身也包含括号,但我正在检查它是否只包含一个数字。@Jan在同一个正则表达式中,我们如何检查数字是否仅在0-6之间