在数组中查找回文

时间:2014-05-29 09:21:24

标签: java arrays palindrome

对于这个受让人,我认为我做对了,但是当我在网上提交时,即使我用Eclipse检查过,也没有将其列为正确。

提示:

编写一个方法isPalindrome接受一个字符串数组作为其参数,如果该数组是回文(如果它向前读取向后),则返回true,否则返回/ false。例如,数组{“alpha”,“beta”,“gamma”,“delta”,“gamma”,“beta”,“alpha”}是回文,因此将该数组传递给您的方法将返回true。具有零个或一个元素的数组被认为是回文。

我的代码:

public static void main(String[] args) {
    String[] input = new String[6]; //{"aay", "bee", "cee", "cee", "bee", "aay"} Should return true
    input[0] = "aay";
    input[1] = "bee";
    input[2] = "cee";
    input[3] = "cee";
    input[4] = "bee";
    input[5] = "aay";

    System.out.println(isPalindrome(input));
}

public static boolean isPalindrome(String[] input) {
    for (int i=0; i<input.length; i++) { // Checks each element
        if (input[i] != input[input.length-1-i]){
            return false; // If a single instance of non-symmetry
        }
    }
    return true; // If symmetrical, only one element, or zero elements
}

作为一个例子,{“aay”,“bee”,“cee”,“cee”,“bee”,“aay”}在Eclipse中返回true,但是练习它!说它返回false。发生了什么事?

2 个答案:

答案 0 :(得分:0)

这不是你如何比较Java中的字符串。使用以下内容:

if (!input[i].equals(input[input.length-1-i])){
        return false; // If a single instance of non-symmetry
    }

阅读this

答案 1 :(得分:0)

你不能使用operator ==或!=来比较字符串对象。运算符将处理对象引用而不是值。

public static boolean isPalindrome(String[] input) {
        for (int i=0; i<input.length; i++) { // Checks each element
            if (!input[i].equals( input[input.length-1-i])){
                return false; // If a single instance of non-symmetry
            }
        }
        return true; // If symmetrical, only one element, or zero elements
}