编写一个方法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;})
答案 0 :(得分:2)
请参阅Java String.equals versus ==
你必须使用equals方法,而不是=运算符来比较java中的字符串。
答案 1 :(得分:2)
Java中的字符串被视为与其他对象一样 - 与!=
进行比较比较引用,而不是值。要进行值比较,您需要使用String.equals
方法。
答案 2 :(得分:2)
str
是String
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]))