对于字符串数组的回文这个代码有什么问题

时间:2014-08-30 08:10:58

标签: java string palindrome

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

    public boolean  isPalindrome(String[] str){
        for (int i =0;i<str.length;i++){
           if (str[i]!=str[str.length-1-i])
                return false;
      }
     return true;
     }

根据练习网站的答案输入失败。

isPalindrome({&#34; aay&#34;,&#34; bee&#34;,&#34; cee&#34;,&#34; cee&#34;,&#34; bee&#34; ,&#34; aay&#34;})

isPalindrome({&#34; aay&#34;,&#34; bee&#34;,&#34; cee&#34;,&#34; cee&#34;,&#34; bee&#34; ,&#34; aay&#34;})

5 个答案:

答案 0 :(得分:2)

请参阅Java String.equals versus ==

你必须使用equals方法,而不是=运算符来比较java中的字符串。

答案 1 :(得分:2)

Java中的字符串被视为与其他对象一样 - 与!=进行比较比较引用,而不是值。要进行值比较,您需要使用String.equals方法。

答案 2 :(得分:2)

strString s。

的数组

要比较String s的值,您必须使用String.equals - ==运算符会比较字符串的标识而不是值本身。

public boolean isPalindrome(String[] str){ for (int i=0;i<str.length;i++){ if (!str[i].equals(str[str.length - i - 1])) return false; } return true; }

答案 3 :(得分:2)

此代码使用==比较字符串,string1.equals(string2)执行对象的身份比较。您需要使用isPalindrome({"a", "aa".substring(1)})比较字符串以检查内容是否相等。

输入{{1}}的方法失败,因为两个字符串相等但不相同。

有关详情,请查看How do I compare strings in Java?,其中包含更多示例。

答案 4 :(得分:2)

尝试使用if (!str[i].equals(str[str.length-1-i]))