我的节目不会回来

时间:2016-02-15 16:28:10

标签: java algorithm return anagram

我正在编写一个算法来检查两个单词是否是字谜,但即使它应该这样做也不会返回true。有人可以给我建议吗?

public class Anagramme {

    public boolean Anagramme(boolean resultat) {

        String s1 = "parisien", s2 = "aspirine";


        if (s1.length() != s2.length()) {
            return false;
        } else {
            char[] ch1 = s1.toCharArray();
            Arrays.sort(ch1);
            String r1 = new String(ch1);
            char[] ch2 = s2.toCharArray();
            Arrays.sort(ch2);
            String r2 = new String(ch2);

            if (r1.equals(r2)) {
                return true;
            } else {
                return false;
            }
        }

    }
}

2 个答案:

答案 0 :(得分:1)

我已经重写了你的代码并删除了不必要的部分,这对我有用。

public boolean anagram() { // changed here
    String s1 = "parisien", s2 = "aspirine";

    if (s1.length() != s2.length()) {
        return false;
    } else {
        char[] ch1 = s1.toCharArray();
        Arrays.sort(ch1);
        String r1 = new String(ch1);
        char[] ch2 = s2.toCharArray();
        Arrays.sort(ch2);
        String r2 = new String(ch2);
        return r1.equals(r2); // changed here
    }
}

用法:

boolean anagram = anagram();
System.out.println("anagram = " + anagram);

结果:

anagram= true

你可以尝试它可以帮助你!

答案 1 :(得分:-1)

以这种方式使用.equals询问引用是否相同。它不会比较每个数组的内容。如果要比较每个数组的内容,可以循环并比较每个字符或使用Arrays.equals。