如何验证单个输入行是否只是整数?

时间:2013-10-07 02:10:27

标签: java validation while-loop java.util.scanner

程序应该在用户的单个输入中接收四个整数(例如1 2 3 42)。我正在尝试编写一些代码来检查输入是否都是整数。

然而,即使输入类似于1 2 a b,它也不会进入while循环,我无法弄清楚原因。任何帮助将不胜感激。

Scanner scan = new Scanner(System.in);      
System.out.print("Please list at least one and up to 10 integers: ");
scan.hasNextInt();

    while(!scan.hasNextInt())
        {
            System.out.println("One or more of your inputs was not an integer. Please input only integers: ");
            scan.next();
        }

1 个答案:

答案 0 :(得分:1)

您通过int阅读下一个Scanner来取得进展。

使用以下代码尝试输入1 a b

scan.hasNextInt();
scan.nextInt();   // or scan.next() to read next integer
    while(!scan.hasNextInt())
        {
            System.out.println("One or more of your inputs was not an integer. Please input only integers: ");
            scan.next();
        }

它将打印:

  

您的一个或多个输入不是整数。请输入   整数:

     

仅限整数:您的一个或多个输入不是整数。请输入