比较JAVA中的数组值(检查单词是否为字谜)

时间:2015-01-04 08:56:23

标签: java arrays

如何检查两个数组是否具有相同的值,忽略它们的位置。数组可以有多个相同的值。

示例1

String[] a = {"m","o","m","d","a","d"};
String[] b = {"d","a","d","m","o","m"};

//这应该是真的。

示例2

String[] a = {"m","o","m","d","a","d"};
String[] b = {"d","a","d","m","o"};

//这应该是假的,因为第二个数组只有一个m而第一个数组有两个

我希望通过例子理解我的病情。

我正在尝试检查单词是否为字谜。我用单词做了数组。但无法检查数组是否具有相同的值。我的代码如下:

public class AreAnagrams {
    public static boolean areAnagrams(String a, String b) {
        //throw new UnsupportedOperationException("Waiting to be implemented.");
        if(a.length() != b.length()) return false;
        String[] test = new String[a.length()];
        String[] testb = new String[b.length()];
        for(int i=0; i<a.length(); i++){
            test[i] = a.substring(i,i+1);
            testb[i] = b.substring(i,i+1);            
        }
        return test.equals(testb);

    }

    public static void main(String[] args) {
        System.out.println(areAnagrams("momdad", "dadmom"));
    }
}

1 个答案:

答案 0 :(得分:4)

您可以使用Arrays.sort()对两个数组进行排序,然后将排序后的数组与Arrays.equals()进行比较,以确定它们是否具有相同的值。