我有我的代码,它能够自行检查字母,但是当我将它们放在同一字符串中时,它只会崩溃
我已经尝试过.matches方法,而香港专业教育学院也曾尝试过.contains,我认为这是最合适的,但是我不确定什么是最适合使用的。
String regex = "^[a-zA-Z]+$";
System.out.println("How many dice to you want to roll?");
String DiceChoice = scan.nextLine();
while (DiceChoice.indexOf(".")!=-1 || DiceChoice.matches(regex)) {
System.out.println("Please enter a number without a decimal or
letter");
DiceChoice = s.nextLine();
}
int DiceChoiceInt = Integer.parseInt(DiceChoice);
当我输入“ a”就可以了,或者是“。”很好,但是当我输入“ 4a”时,这就是例外。
我希望它可以在字符串中的某个位置找到字母并进入while循环,但是它只是出现了数字格式异常,我在想也许可以尝试捕获吗?任何帮助表示赞赏
最佳答案
纯数字字符串的正则表达式模式为\d+
,所以为什么不检查正匹配呢?
String diceChoice;
do {
diceChoice = scan.nextLine();
if (diceChoice.matches("\\d+")) break;
System.out.println("Please enter a number-only choice");
} while (true);
int diceChoiceInt = Integer.parseInt(diceChoice);
该方法将无限循环,直到发生纯数字输入为止。