Java 防止重复扫描仪用户输入
我正在写的这个程序让我感到很舒服。我试图做的是防止用户输入相同的整数两次。该程序获取4个int输入,并将其与4个随机int的数组进行比较,以搜索匹配项。以下是我迄今为止在阻止多重输入方面所做的努力Java 防止重复扫描仪用户输入,java,validation,input,Java,Validation,Input,我正在写的这个程序让我感到很舒服。我试图做的是防止用户输入相同的整数两次。该程序获取4个int输入,并将其与4个随机int的数组进行比较,以搜索匹配项。以下是我迄今为止在阻止多重输入方面所做的努力 for (int z = 0; z<4; z++){ System.out.println("Enter a number between 0-9. No duplicates please!"); temp[z] = inputDevice.nextInt();
for (int z = 0; z<4; z++){
System.out.println("Enter a number between 0-9. No duplicates please!");
temp[z] = inputDevice.nextInt();
for(int why = 0; why<temp.length; why++){
if(Arrays.asList(temp).contains(temp[z])){
System.out.println("Duplicate found! Please enter a non-repeating digit");
temp[z]=0;
z--;
}
}
}
for(int z=0;z1)由于要将数组转换为列表,因此最好使用ArrayList
2) 将输入存储在变量中,并测试它是否已包含在列表中
List<Integer> my_list = new ArrayList<Integer>();
for (int z = 0; z<4; z++){
System.out.println("Enter a number between 0-9. No duplicates please!");
int input = inputDevice.nextInt();
if(my_list.contains(input)){
System.out.println("Duplicate found! Please enter a non-repeating digit");
z--;
}
else{
my_list.add(input);
}
}
List my_List=new ArrayList();
对于(int z=0;z当您检查temp是否包含z时,它已经包含z。在检查之前,将输入放入一个临时变量中,然后再添加。您没有使用循环中的为什么
但是如果可能的话,我会将temp
更改为ArrayList
实现。toList
方法的问题。它使用int[]
数组作为单个对象,而不是将其视为int
对象的数组。要实现后者,您必须使用Integer
s.,因为if语句没有检测到重复项。这很有效!我只需找出如何将此数组列表复制到为我计算的另一个数组。谢谢C.B.Wis我可以相信你的回答,但我还没有足够的代表这么做。但我感谢你的帮助。