过滤java.util.Scanner输入?

时间:2013-12-30 07:05:44

标签: java java.util.scanner

我正在使用java.util.Scanner,如果用户输入超出范围,我想过滤掉用户输入,例如只接受0,1,2或3.或许类似于:

if !(sc.hasNextInt 0,1,2,3

我知道这不是有效的语法,但我想展示我的目标。如何告诉Java不要存储不符合我标准的用户输入?

3 个答案:

答案 0 :(得分:2)

这是你必须自己实现的东西 - 它不是Scanner支持的东西。一种典型的方法是使用这样的循环:

int input;
do {
    input = sc.nextInt();
} while (input < 0 || input > 3);

答案 1 :(得分:0)

public class Test1
{
    public static void main(String [] args)
    {
        List<Integer> lst= new ArrayList<Integer>();
        //Take user input any number of times based on your condition.

        System.out.println("Please enter a number :");
        Scanner sc= new Scanner(System.in);
        int i= sc.nextInt();
        if(i==0 || i==1 || i==2 ||i==3)
        {
            lst.add(i);
        }
        //Go back
    }
}

答案 2 :(得分:-1)

    public static void main(String[] args) throws AWTException, Exception {

            Scanner  sc = new Scanner(System.in);
            while(sc.hasNextInt())
            { int val= sc.nextInt();
                if(val==0||val==1 || val==2||val==3)
                {
                    // your code here

                }
               else
                {
                    System.out.println("wrong number, enter again");
                }
            }
        }