.equals方法即使字符串相同也返回false

时间:2019-01-13 12:35:14

标签: java string

我正在尝试做回文计划。我是初学者。这是我的代码:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
    // palindrome

        System.out.println("Enter a statement");
        Scanner scan = new Scanner(System.in);
        String userInput = scan.nextLine();
        StringBuilder str;
        str = new StringBuilder(userInput.replace(" ", "").toLowerCase().trim().toString());
        System.out.println(str);
        String reversed = new StringBuilder(str).reverse().toString().trim();
        System.out.println(reversed);

        if(str.equals(reversed)){
            System.out.println("is palindrome");
        }else{
            System.out.println("not a palindrome");
        }
    }
}

我尝试了调试模式以及所有其他功能。无法弄清楚为什么它不返回回文。

1 个答案:

答案 0 :(得分:5)

strStringBuilder,而不是StringreplacedString。如果操作数不是另一个StringBuilder.equals,则true将永远不会返回StringBuilder

str设为String,以便您使用String.equals并将一个字符串与另一个字符串进行比较。