过滤java.util.Scanner输入?
我使用的是过滤java.util.Scanner输入?,java,java.util.scanner,Java,Java.util.scanner,我使用的是java.util.Scanner,如果用户输入超出范围,我想过滤掉它,例如只接受0、1、2或3。也许是这样的: if !(sc.hasNextInt 0,1,2,3 我知道这不是有效的语法,但我想展示一下我的意图。我如何告诉Java不要存储不符合我标准的用户输入?这是您必须自己实现的东西--它不是扫描仪所支持的东西。一种典型的方法是有这样的循环: public static void main(String[] args) throws AWTException, Exce
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");
}
}
}
int input;
do {
input = sc.nextInt();
} while (input < 0 || input > 3);
int输入;
做{
输入=sc.nextInt();
}而(输入<0 | |输入>3);
公共类测试1
{
公共静态void main(字符串[]args)
{
List lst=new ArrayList();
//根据您的情况,多次接受用户输入。
System.out.println(“请输入一个数字:”);
扫描仪sc=新的扫描仪(System.in);
int i=sc.nextInt();
如果(i==0 | | i==1 | | i==2 | | i==3)
{
第1段添加(i);
}
//回去
}
}
请发布否决投票的原因,以便我将来可以改进我的答案:)(注:我不是向下投票人)向下投票的可能原因可能是您在if语句中多次调用sc.nextInt(),这是不正确的。您应该调用sc.nextInt()一次,并将其返回值存储在变量中,然后在if语句中使用它进行比较。
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
}
}