import java.util.*; public class Anagram3Debug { public static void main (String[] argv) { String s = "conversation"; String s2 = "conservation"; boolean yes = areAnagrams (s.toCharArray(), s2.toCharArray()); System.out.println ("Are " + s + " and " + s2 + " anagrams? " + yes); s = "slop"; s2 = "sloop"; yes = areAnagrams (s.toCharArray(), s2.toCharArray()); System.out.println ("Are " + s + " and " + s2 + " anagrams? " + yes); s = "sloop"; s2 = "polls"; yes = areAnagrams (s.toCharArray(), s2.toCharArray()); System.out.println ("Are " + s + " and " + s2 + " anagrams? " + yes); // Fourth test. s = "sloop"; s2 = "pools"; yes = areAnagrams (s.toCharArray(), s2.toCharArray()); System.out.println ("Are " + s + " and " + s2 + " anagrams? " + yes); } static boolean areAnagrams (char[] A, char[] B) { System.out.println ("areAnagrams(): Start"); System.out.println (" A=" + Arrays.toString(A) + " B=" + Arrays.toString(B)); if (A.length != B.length) { System.out.println (" >> unequal lengths: not anagrams"); return false; } for (int i=0; i> i=" + i + " searching for A[i]=" + A[i] + " in B"); boolean found = false; for (int j=0; j>>> found j=" + j + " B[j]=" + B[j]); found = true; // Now scratch out the letter found. B[j] = '#'; } } System.out.println (" >> after-inner-for: A=" + Arrays.toString(A) + " B=" + Arrays.toString(B)); if (! found) { System.out.println (" >> A[i]=" + A[i] + " not found => not anagrams"); return false; } } //end-for System.out.println (" >> A and B are anagrams"); return true; } }