我是Java的初学者。我需要比较两个字符串数组,并找出第一个数组中的任何值是否与第二个数组中的任何值匹配?
这是我的功能无法按预期工作,
public static boolean CheckStatAppearinLeftAndRight1(String[] array1, String[] array2)
{
boolean b = false;
for (int i = 0; i < array2.length; i++)
{
for (int a = 0; a < array1.length; a++)
{
if (array2[i] == array1[a])
{
b = true;
break;
}
else
{
b = false;
}
}
}
return b;
}
有人可以在这里指出问题吗?
答案 0 :(得分:1)
if (array2[i] == array1[a])
应该是
if ((array2[i]).equals(array1[a]))
答案 1 :(得分:0)
尝试&GT;&GT;&GT;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws Exception {
int[] ary = {1,2,3,4,5,6};
int[] ary1 = {1,2,3,4,5,6};
int[] ary2 = {1,2,3,4};
System.out.println("Is array 1 equal to array 2?? "
+Arrays.equals(ary, ary1));
System.out.println("Is array 1 equal to array 3?? "
+Arrays.equals(ary, ary2));
}
}
答案 2 :(得分:0)
使用array2[i].equals(array1[i])
而不是使用==运算符。
==运算符比较两个引用,并给你错误。
equals()方法已经在类String
中被覆盖,它匹配来自两个不同字符串对象的确切字符。
答案 3 :(得分:-1)
boolean b = false;
for (int i = 0; i < array2.length; i++)
{
for (int a = 0; a < array1.length; a++)
{
if (array2[i].equals(array1[a]))
{
b = true;
break;
}
else
{
b = false;
}
}
if(b)
return b;
}
}