我正在尝试做回文计划。我是初学者。这是我的代码:
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");
}
}
}
我尝试了调试模式以及所有其他功能。无法弄清楚为什么它不返回回文。
答案 0 :(得分:5)
str
是StringBuilder
,而不是String
。 replaced
是String
。如果操作数不是另一个StringBuilder.equals
,则true
将永远不会返回StringBuilder
。
将str
设为String
,以便您使用String.equals
并将一个字符串与另一个字符串进行比较。