【发布时间】:2014-01-17 01:34:24
【问题描述】:
我正在使用java.util.Scanner,如果用户输入超出范围,我想过滤掉它,例如只接受 0、1、2 或 3。可能类似于:
if !(sc.hasNextInt 0,1,2,3
我知道这不是有效的语法,但我想表明我的目的。如何告诉 Java 不要存储不符合我的条件的用户输入?
【问题讨论】:
我正在使用java.util.Scanner,如果用户输入超出范围,我想过滤掉它,例如只接受 0、1、2 或 3。可能类似于:
if !(sc.hasNextInt 0,1,2,3
我知道这不是有效的语法,但我想表明我的目的。如何告诉 Java 不要存储不符合我的条件的用户输入?
【问题讨论】:
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");
}
}
}
【讨论】:
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
}
}
【讨论】:
这是你必须自己实现的东西——它不是Scanner 支持的东西。一个典型的方法是有一些像这样的循环:
int input;
do {
input = sc.nextInt();
} while (input < 0 || input > 3);
【讨论】: