我正在写一个算法,我需要检查,如果字符串包含只有一个位数(不超过)。目前我有:使用正则表达式来检查,如果字符串只包含一个数字
if(current_Operation.matches("\\d")){
...
}
有没有更好的方法去做到这一点?谢谢。
我正在写一个算法,我需要检查,如果字符串包含只有一个位数(不超过)。目前我有:使用正则表达式来检查,如果字符串只包含一个数字
if(current_Operation.matches("\\d")){
...
}
有没有更好的方法去做到这一点?谢谢。
您可以使用:
^\\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(为了清楚添加新行)。
是的,谢谢!经过测试,完美的作品。 – pmcg521
@Jan在相同的正则表达式,我们怎么能检查是否是数字赌注只有0-6 –
使用正则表达式
/^\d$/
这将保证整个字符串包含一个单一的数字。 ^
匹配行的开头,并且$
匹配行的末尾。
他要求检查,如果字符串包含一个数字,不只是一个数字,但它应该只包含恰好有一个数字 – WebFreak001
@ WebFreak001是的,你是正确的,字符串包含括号还可以,但我检查,如果它仅包含一个数字。 – pmcg521
如果你想象不使用正则表达式:
int numDigits = 0;
for (int i = 0; i < current_Operation.length() && numDigits < 2; ++i) {
if (Character.isDigit(currentOperation.charAt(i))) {
++numDigits;
}
}
return numDigits == 1;
什么是错的这种方式? –
模式:'^ \ D * \ d \ D * $'。 – Jan
看来我没有用这种方式得到正确的结果。如果字符串包含任何地方,请让我仔细检查 – pmcg521