当前位置: 首页 > 知识库问答 >
问题:

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

汪泓
2023-03-14

我编写了这段代码,它应该要求用户输入第一个数组的长度,其中包含他想要的数字,而不是在数量完成之前重复每个数字。之后,他需要询问数组的长度,并比累犯的数字。比,我需要检查是否所有的数字都包含所有的数字,如果是真的,打印它,如果不是,打印假的。在这段代码中,我已经用字符串数组替换了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)
and digits: (1,2,3)
numbers: (12,-3,123)

共有1个答案

慕翰学
2023-03-14

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

想象一下,如果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++;
        }
    }
}

既然这看起来像是一个家庭作业,我就到此为止,让你自己试着解决它。

 类似资料:
  • 问题内容: 我想找出$ all是否包含所有$ search_this值并返回true或false。有什么想法吗? 问题答案: 看一下array_intersect()。

  • 问题内容: 我想为数组中的每个值返回一个布尔值,指示它是否在array中。我猜这应该是一个标准程序,但是我找不到有关如何执行此操作的任何信息。我的尝试如下: 但是,我得到了错误: 我使用的是numpy,因此首选使用numpy或标准Python的解决方案。 问题答案: 我相信您可以使用-

  • 我试图获取数组的每个元素并检查它是否是回文。如果给定数组中的所有元素都是回文,那么它应该返回1,如果不是,那么它应该返回0。 例如输入5 111 222 333 444 555预期输出1我的输出0 谢谢你的帮助。

  • 问题内容: 在SO上已经问过类似的问题,但是它们有更具体的约束,其答案不适用于我的问题。 一般来说,确定任意numpy数组是否是另一个数组的子集的最有效方法是什么?更具体地说,我有大约20000x3的数组,我需要知道完全包含在集合中的1x3元素的索引。更普遍地讲,是否有更Python化的方式编写以下代码: 对于我的用例,我可以安全地假设len(master)<<20000。(因此,可以安全地假设m

  • 问题内容: 我试图遍历2个数组,外部数组则比另一个数组更长。它将循环遍历第一个,如果第二个数组不包含该int,它将返回false。但是我不知道该怎么做。这是我到目前为止所拥有的: 运行时出现此错误: 我想知道是否可以不使用嵌套循环(如上)来完成。我知道我做错了,如果有人可以在此问题上提供帮助,那就太好了。我也不确定要在Java文档中寻找什么类。 问题答案: 您可以检查较大的数组是否包含较小数组中的

  • 问题内容: 我有两个数组,我想检查是否每个元素都在中。如果元素的值在中重复,则该元素的值必须相等。最好的方法是什么? 问题答案: 一种选择是对两个数组进行排序,然后遍历两个数组,然后比较元素。如果在超级袋中未找到子袋候选中的元素,则前者不是子袋。排序通常为O(n *log(n)),比较为O(max(s,t)),其中 s 和_t_是数组大小,总时间复杂度为O(m * log(m)) ,其中m =ma