比较两个字符串数组

时间:2013-12-11 05:48:52

标签: java arrays

我是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;
}  

有人可以在这里指出问题吗?

4 个答案:

答案 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;
    }
}