2015-01-04 4 views
-2

Как проверить, имеют ли два массива одинаковые значения, игнорируя их положение. Массивы могут иметь несколько одинаковых значений.Сравнение значений массива в JAVA (проверка, являются ли слова анаграммами)

Пример 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"}; 

// Это должно привести к ложным, потому что второй массив имеет только один м и первый массив имеет два

Я надеюсь, мое состояние понимается, например.

Я пытаюсь проверить, являются ли слова анаграммами. Я сделал массив из слов. Но не удалось проверить, имеют ли массивы одинаковые значения. Мой код выглядит следующим образом:

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

Опубликовать свой код ... – newuser

+2

Мы не рекомендуем вопросы, которые не демонстрируют минимальное понимание, голосование закрывается. – Maroun

+1

Сортируйте оба массива перед сравнением. – idstam

ответ

4

Вы можете отсортировать два массива с Arrays.sort(), а затем сравнить отсортированные массивы с Arrays.equals(), чтобы узнать, если они имеют одинаковые значения.

+0

Спасибо человек. Он работает отлично. Не думал об этом. –

Смежные вопросы