Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 防止重复扫描仪用户输入_Java_Validation_Input - Fatal编程技术网

Java 防止重复扫描仪用户输入

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();

我正在写的这个程序让我感到很舒服。我试图做的是防止用户输入相同的整数两次。该程序获取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 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我可以相信你的回答,但我还没有足够的代表这么做。但我感谢你的帮助。