我正在寫一個算法,我需要檢查,如果字符串包含只有一個位數(不超過)。目前我有:使用正則表達式來檢查,如果字符串只包含一個數字
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