Java 检查字符串是否为回文

Java 检查字符串是否为回文,java,palindrome,Java,Palindrome,我编写这个方法是为了检查给定的字符串是否是回文,根据结果,我实现了一个if-else语句来打印一些内容。我知道字符串是回文,但我得到的结果与我预期的不同。以下是java代码: public class Palindrom { public static void main(String[] args){ String palindrome = "DOT SAW I WAS TOD"; String result = ""; for(int

我编写这个方法是为了检查给定的字符串是否是回文,根据结果,我实现了一个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
我怀疑问题出在result
==
回文上。这是不是因为我在比较两个不同的对象而变得错误?我应该用什么方法来解决这些问题?

您不应该使用“==”

试试这个

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

您必须在字符串上使用等于,而不是==

result.equals(palindrome);

在Java中比较字符串时不能使用==,在这种情况下,必须使用
String.equals(String)


result.equals(回文)

您可以使用result.equalsIgnoreCase(回文)<代码>结果==回文
检查这些是相同的字符串对象,而不是具有相同内容的两个字符串。
result.equals(palindrome);