Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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 - Fatal编程技术网

Java 比较字符串的两个数组并将结果存储在另一个数组中

Java 比较字符串的两个数组并将结果存储在另一个数组中,java,Java,我想比较两个数组并将差异存储在另一个数组中 例如,这两个数组可能是 String[] a1 = { "cat" , "dog" }; String[] a2 = { "cat" , "rabbit" }; 生成的数组如下所示 { "rabbit" } 我使用这个代码,但它不起作用 int n = 0; for (int k = 0; k <= temp.length; k++) { for (int u = 0; u <= origenal.length; u++)

我想比较两个数组并将差异存储在另一个数组中

例如,这两个数组可能是

String[] a1 = { "cat" , "dog" };
String[] a2 = { "cat" , "rabbit" };
生成的数组如下所示

{ "rabbit" }
我使用这个代码,但它不起作用

int n = 0;
for (int k = 0; k <= temp.length; k++)
{
    for (int u = 0; u <= origenal.length; u++)
    {
        if (temp[k] != origenal[u] && origenal[u] != temp[k])
        {
            temp2[n] = temp[k];
            System.out.println(temp[u]);
            n++;
        }
    }
}
int n=0;

对于(int k=0;k这应该可以做到

String[] result = new String[100];
Int k = 0;
Boolean test = true;
for(i=0; i < a1.length; i++){
   for(j=0; j < a2.length; j++){
      if(a2[i].equals(a1[i])) continue;
      test = false
   }
   if(test == false) result[k++] = a1[i];
}
String[]result=新字符串[100];
Int k=0;
布尔检验=真;
对于(i=0;i
我认为这可能是您正在寻找的。请注意,如果值存在于第二个数组中,但不存在于第一个数组中,则它只会添加到第三个“数组”。在您的示例中,只会存储兔子,而不会存储狗(即使两个数组中都不存在狗).这个例子可能会缩短,但我想保持这样,以便更容易看到发生了什么

首次进口:

import java.util.ArrayList;
import java.util.List;
然后执行以下操作以填充和分析阵列

String a1[] = new String[]{"cat" , "dog"};    // Initialize array1
String a2[] = new String[]{"cat" , "rabbit"}; // Initialize array2

List<String> tempList = new ArrayList<String>();
for(int i = 0; i < a2.length; i++)
{
    boolean foundString = false; // To be able to track if the string was found in both arrays
    for(int j = 0; j < a1.length; j++)
    {
        if(a1[j].equals(a2[i]))
        {
            foundString = true; 
            break; // If it exist in both arrays there is no need to look further
        }
    }
    if(!foundString) // If the same is not found in both..
        tempList.add(a2[i]); // .. add to temporary list
}
要打印列表或数组的内容,请执行以下操作:

// Print the content of List tempList
for(int i = 0; i < tempList.size(); i++)
{
    System.out.println(tempList.get(i));
}

// Print the content of Array a3
for(int i = 0; i < a3.length; i++)
{
    System.out.println(a3[i]);
}
//打印列表模板的内容
对于(int i=0;i
简单:
String result=“rabbit”
你是如何在结果中只得到“rabbit”的?我们需要更多的信息来帮助你。@DanW我想他是在存储
a2
a1
之间的差异:
a2\a1
是“rabbit”@user902383 duh,是的,我发现在发布它之后(字符串s2:a2)的语句中有错误,错误是“预期的”我应该进行导入吗?您只需要java.util.ArrayList和import java.util.List就可以使用该列表。我可以重建循环,使其不为每个变量使用。@user1888020您可以将(字符串s2:a2)
更改为(int I=0;I
然后在有
s2
的boddy中,使用另一个
int
变量,如
j
,将其更改为
a2[i]
,对于s1和a1也是如此。我更新了示例,不使用for each样式循环。这样效果更好吗?当我想要打印tempList的内容时,出现错误,索引为0,大小为0,
// Print the content of List tempList
for(int i = 0; i < tempList.size(); i++)
{
    System.out.println(tempList.get(i));
}

// Print the content of Array a3
for(int i = 0; i < a3.length; i++)
{
    System.out.println(a3[i]);
}