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

、および while ループを使用Scanner.hasNextIntすると、ユーザーが値を渡すまで入力を制限できintegerます。

while (!scan.hasNextInt()) {
    System.out.println("Please enter an integer answer");
    scan.next();
} 
return scan.nextInt();

または、特定の回数のチャンスを与えることもできます (count 変数を使用して、 に入らないようにし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 に答える