【问题标题】:Why is my method returning false when it should return true for my understanding? [duplicate]为什么我的方法应该返回 true 以供我理解时返回 false? [复制]
【发布时间】:2021-12-24 23:51:30
【问题描述】:

这是我应该写的方法。它需要两个字符串,如果它们是字谜,则应该返回 true。也需要排序。

我不允许使用导入,只是使用一个来查看它是否正确排序。 但是我不明白为什么它仍然返回false?我在某处读到 (ArrayA == ArrayB) 作为比较?

public static boolean anagramCheck (String a, String b) {

    String[] conA = a.toLowerCase().split("");
    String[] conB = b.toLowerCase().split("");

    //sort A
    for (int i = 0; i < (conA.length-1); i++) {
        for (int j = i + 1; j < conA.length; j++) {

            if (conA[i].compareTo(conA[j]) > 0) {
                String temp = conA[i];
                conA[i] = conA[j];
                conA[j] = temp;


            }
        }
    }

    //sort B
    for (int i = 0; i < conB.length; i++) {
        for (int j = i + 1; j < conB.length; j++) {

            if (conB[i].compareTo(conB[j]) > 0) {
                String temp = conB[i];
                conB[i] = conB[j];
                conB[j] = temp;
            }
        }
    }

    System.out.println(Arrays.toString(conA));
    System.out.println(Arrays.toString(conB));

    boolean result;

    if (conA == conB) {
        result = true;
        return result;
    } else {
        result = false;
        return result;
    }
}

【问题讨论】:

  • No conA == conB 不能作为比较(在这种情况下)
  • 您必须遍历已排序的数组,并逐个元素检查它们是否相同:conA[i].equals(conB[i])
  • 这能回答你的问题吗? equals vs Arrays.equals in Java 我知道这不是同一个问题。我仍然认为那里的答案也可以达到您的目的吗?
  • 是的,解决了它,除了@vincrichaud 所说的。非常感谢。

标签: java return boolean


【解决方案1】:

使用 Arrays.equals。 == 检查对象的相等性,因为两者都是不同的实例,所以返回 false。需要逐个元素比较数组中的元素来比较两个数组是否相等。 For 循环遍历数组并比较每个元素。

if (Arrays.equals(conA,conB)) {
        result = true;
        return result;
    } else {
        result = false;
        return result;
    }

【讨论】:

  • 理论上:很好的答案。在这种情况下不,因为 Merudoo 指定他不能使用导入。
  • 或者只是return Arrays.equals(conA,conB);
猜你喜欢
  • 1970-01-01
  • 2013-09-20
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 2021-11-10
  • 1970-01-01
  • 2020-08-27
相关资源
最近更新 更多