如何检查两个数组是否具有相同的值,忽略它们的位置。数组可以有多个相同的值。
示例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"));
}
}
答案 0 :(得分:4)
您可以使用Arrays.sort()
对两个数组进行排序,然后将排序后的数组与Arrays.equals()
进行比较,以确定它们是否具有相同的值。