0

我目前有一个简单的函数(发布在下面),它向用户提出问题并期望得到一个整数答案。

有没有办法让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();
}
4

1 回答 1

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;
于 2012-11-25T19:42:31.373 回答