我目前有一个简单的功能(在下面发布),询问用户一个问题,并希望得到一个整数答案。
有没有办法让java限制可输入控制台的字符,即只允许输入数字。
我知道在其他编程语言中有一些简单的方法可以做到这一点,但我应该如何在java中执行此操作并将其实现到我的函数中?
static int questionAskInt(String question)
{
Scanner scan = new Scanner (System.in);
System.out.print (question+"\n");
System.out.print ("Answer: ");
return scan.nextInt();
}
答案 0 :(得分:0)
使用Scanner.hasNextInt
和while循环,您可以限制用户提供输入,直到它传递integer
值。
while (!scan.hasNextInt()) {
System.out.println("Please enter an integer answer");
scan.next();
}
return scan.nextInt();
或者,您也可以通过使用计数变量给出一定数量的机会(因此它不会进入infinite loop
: -
int count = 3;
while (count > 0 && !scan.hasNextInt()) {
System.out.println("Please enter an integer answer");
System.out.println("You have " + (count - 1) + "more chances left.");
count--;
scan.next();
}
if (count > 0) {
return scan.nextInt();
}
return -1;