【问题标题】:My program won't return我的程序不会返回
【发布时间】:2016-05-26 15:44:00
【问题描述】:

我正在编写一个算法来检查两个单词是否是字谜,但它不会返回 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;
            }
        }

    }
}

【问题讨论】:

  • 这里s1s2 不包含相同的值..
  • 我试过你的代码,它返回真。我认为问题可能是其他问题
  • 考虑使用return r1.equals(r2); 作为结束方法的更简洁的方式...

标签: java algorithm return anagram


【解决方案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

你可以试试,对你有帮助!

【讨论】:

  • 我已经尝试了代码,但它返回的消息是找不到主要方法,我应该将其重命名为“public static void main(String[] args)”。顺便说一句,我正在使用 Eclipse
  • 您可以使用与方法名称'anagram'相同的名称
  • 你可以试试我上面举的例子
  • 是的,我试过你的代码,看起来比我的简单,但它仍然不会返回真假,只是一个错误。
  • 它有效。我使用了主要方法。感谢您的帮助
【解决方案2】:

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

【讨论】:

  • 这是不正确的。在String 上调用equals 方法确实会比较Strings 的内容。
  • 啊。你是对的。我反应太快了,还以为他在比较数组呢。
  • 也就是说,至少我试图解决问题,而不是仅仅给孩子工作代码。 J/S.
  • 这正是导致一个甚至不知道自己需要一个能够传递他的 Java 类的 main 方法的孩子的原因......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-15
  • 1970-01-01
  • 2016-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多