0
public class reverse
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a new string : ");
        String word = sc.nextLine();
        StringBuilder s = new StringBuilder();
        for (int i = 0; i <= word.length() - 1; i++)
        {
            char c = word.charAt(word.length() - i - 1);
            s.append(c);
        }
        System.out.println("Reversed String = " + s);
        if (word.equals(s))
        {
            System.out.println("This is a palindrome");
        }
        else
        {
            System.out.println("This is not a palindrome");
        }
    }
}

无论我输入什么字符串,这总是打印“这不是回文”

4

3 回答 3

4

你需要

if (word.equals(s.toString())){ 
    ...
}
于 2012-08-28T02:30:09.803 回答
2

word 是类型String,s 是类型StringBuilder,因此它们在类型方面不相等。

它应该是

if (word.equals(s.toString()) {
    ....
}
于 2012-08-28T02:31:22.317 回答
1

在 StringBuilder 实例上调用 toString(),然后与 equals 方法进行比较

if (s.toString().equals(word)){

}
于 2012-08-28T02:34:22.717 回答