尽管字符串相同,.equals方法返回false

-2 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");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过调试模式和一切.不知道为什么它不返回回文.

T.J*_*der 5

str是一个StringBuilder,而不是一个String.replaced是一个String.当操作数不是另一个时,它StringBuilder.equals永远不会返回.trueStringBuilder

制作str一个String所以你正在使用String.equals并将字符串与另一个字符串进行比较.