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之间