我制作了这段代码,应该要求用户输入包含他想要的数量的第一个数组的长度,而不是接收每个数字,直到完成数量。 之后,他需要询问数字数组的长度,而不是接收数字。 比,我需要检查所有数字是否包含所有数字,如果是真,打印它,如果没有,打印假。 在这段代码中,我已经用字符串数组替换了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");
}
所以我显然需要一个String数组,但是我不知道如何从这里继续检查数字中的每个数字。 (我不能使用高级方法,只能简单检查)。 你的帮助或调整会很棒。感谢。
编辑:它必须是字符串,因为它也可能包含' - '(negetive数字) 为了让理解更加清晰我将添加例子:
digits arrays for example : (1,2,-,3)
and numbers array : (1,-2,3)
这应该返回true。
and digits: (1,2,3)
numbers: (12,-3,123)
应该返回false。
答案 0 :(得分:0)
您的问题在于检查阵列是否等于。
想象一下,如上所述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]
和digitsArray[1]
进行比较,制作counterNumbers = 2
。然后,第一个for循环将处理到i=1
,其中第二个“2” - numbersArray[1]
与digitsArray[0]
和digitsArray[1]
进行counterNumbers = 4
。< / p>
你在这看到你的错吗?
这是一个提示,您应该逐个比较每个数组,而不是将numbersArray
中的第一个“数字”与digitsArray
中的所有“数字”进行比较。注意:只有在每个数组(numbersArray
和digitsArray
)的顺序相同时,此提示才有用。你应该考虑对它们进行排序以确保它。
因为这看起来像是家庭作业,所以我会停在这里,让你自己尝试修理它。