gpt4 book ai didi

java - 检查所有数字是否出现在另一个数组中

转载 作者:太空宇宙 更新时间:2023-11-04 14:20:55 25 4
gpt4 key购买 nike

我编写了这段代码,应该要求用户输入第一个数组的长度,该数组将包含他想要的数字数量,而不是接收每个数字,直到完成该数量。之后他需要询问数字数组的长度,然后接收数字。然后,我需要检查所有数字是否包含所有数字,如果为真,则打印它,如果不包含,则打印 false。在这段代码中,我已经用字符串数组替换了 int[],因为我认为这就是它的工作方式。当我尝试创建一个只有一位数字的 Int 数组时,它工作得很好,当你想要像 22 这样的数字,有 2 位数字时,问题就出现了,检查中断并且不起作用。

String numInNumbersArray,
digitInDigitsArray;
int counterNumbers=0;
System.out.println("Please enter the length of the numbers array: ");
int numbersLength=s.nextInt();
String[] numbersArray=new String [numbersLength];

System.out.printf("Please enter %d numbers: ",numbersLength);
for(int i=0;i<numbersArray.length;i++){
numInNumbersArray=s.next();
numbersArray[i]=numInNumbersArray;
}
System.out.println("Please enter the length of the digits array: ");
int digitsLength=s.nextInt();
String[] digitsArray=new String [digitsLength];
System.out.printf("Please enter %d digits between 0 - 9 and - if you want: ",digitsLength);
for(int i=0;i<digitsArray.length;i++){
digitInDigitsArray=s.next();
digitsArray[i]=digitInDigitsArray;
}
for(int i=0;i<digitsArray.length;i++){
for(int j=0;j<numbersArray.length;j++){
if(numbersArray[j].equals(digitsArray[i])){
counterNumbers++;
}
}
}
if(counterNumbers==numbersArray.length){
System.out.println("true\n");
}else{
System.out.println("false\n");
}

所以我显然需要一个字符串数组,但我不知道如何从这里继续检查数字中的每个数字。 (我不能使用高级方法,只能进行简单的检查)。您的帮助或调整会很棒。谢谢。

编辑:它必须是字符串,因为它也可能包含“-”(负数)为了让大家更清楚地理解,我将添加示例:

digits arrays for example : (1,2,-,3)
and numbers array : (1,-2,3)

这应该返回 true。

and digits: (1,2,3)
numbers: (12,-3,123)

应该返回 false。

最佳答案

您的问题在于检查数组是否相等。

想象一下,如果 numbersArray = {"2", "2"}digitsArray = {"2", "2"} 就像您上面所说的那样。

这个循环:

for(int i=0;i<digitsArray.length;i++){
for(int j=0;j<numbersArray.length;j++){
if(numbersArray[j].equals(digitsArray[i])){
counterNumbers++;
}
}
}

会将第一个“2” - numbersArray[0]digitsArray[0] AND digitsArray[1] 进行比较,使得 计数器编号 = 2。然后,第一个 for 循环将处理到 i=1,其中将出现第二个“2” - numbersArray[1]digitsArray[0] AND digitsArray[1] 使得 counterNumbers = 4

你看出你的错误了吗?

这里有一个提示,您应该“逐位”比较每个数组,而不是将 numbersArray 中的第一个“数字”与 digitsArray 中的所有“数字”进行比较。注意:仅当每个数组(numbersArraydigitsArray)的顺序相同时,此提示才有用。您应该考虑对它们进行排序以确保这一点。

由于这看起来像是一项家庭作业,我将在此停止并让您尝试自己修复它。

关于java - 检查所有数字是否出现在另一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27207708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com