我写了这个方法来检查给定的字符串是否是回文并且根据结果我实现了if-else语句来打印出来的东西。我知道字符串是回文,但我得到的结果与我的预期不同。这是java代码:
public class Palindrom {
public static void main(String[] args){
String palindrome = "DOT SAW I WAS TOD";
String result = "";
for(int i = palindrome.length() - 1; i > 0; i--){
result = result + palindrome.charAt(i);
}
if (result == palindrome){
System.out.println("Yes it is a palindrome");
} else {
System.out.println("No it is not palindrome");
}
}
} //No it is not palindrome
我怀疑问题出在结果==
回文上。这是否因为我正在比较两个不同的对象而变得虚假?我应该用什么方法来解决这些问题?
答案 0 :(得分:3)
你不应该使用“==”。
result.equals(palindrome);
试试这个
public class Palindrom {
public static void main(String[] args){
String palindrome = "DOT SAW I WAS TOD";
String result = "";
for(int i = palindrome.length() - 1; i >= 0; i--){
result = result + palindrome.charAt(i);
}
if (result.equals(palindrome)){
System.out.println("Yes it is a palindrome");
}else{
System.out.println("No it is not palindrome");
}
}
}
你必须减少到i>=0
答案 1 :(得分:1)
你必须在字符串上使用equals而不是==
result.equals(palindrome);
答案 2 :(得分:1)
比较字符串时,不能在Java中使用==,在这种情况下必须使用String.equals(String)
result.equals(palindrome);