以下は、すべてのアナグラムを文字列のコレクションに並べて配置するために私が書いたコードです。出力は期待どおりにソートされません。実際、出力は入力と同じです。どこが間違っていますか?
package set2;
import java.util.Arrays;
import java.util.Comparator;
public class printAllAnagrams {
public static void main(String[] args) {
String[] s = { "Harsha", "ant", "sha", "tna", "ash" };
sortAnagrams(s);
for (String e : s) {
System.out.println(e);
}
}
private static void sortAnagrams(String[] s) {
Arrays.sort(s, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
s1.toLowerCase();
s2.toLowerCase();
if (s1.length() != s2.length()) {
return -1;
} else {
char[] s1_char = s1.toCharArray();
char[] s2_char = s2.toCharArray();
Arrays.sort(s1_char);
Arrays.sort(s2_char);
for (int i = 0; i < s1_char.length; i++) {
if (s1_char[i] != s2_char[i]) {
return -1;
}
}
}
return 0;
}
});
}
}