java - 尽管字符串相同,.equals 方法仍返回 false
问题描述
我正在尝试做一个回文程序。我是初学者。这是我的代码:
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");
}
}
}
我尝试了调试模式和一切。无法弄清楚为什么它返回不是回文。
解决方案
str
是一个StringBuilder
,不是一个String
。replaced
是一个String
。当操作数不是 another 时StringBuilder.equals
将永远不会返回。true
StringBuilder
制作str
一个String
,以便您使用String.equals
一个字符串并将其与另一个字符串进行比较。
推荐阅读
- ios - SWIFT:检测当前视图之外的触摸
- python - 制作一个将在 Maya Python 中循环通过 3 种不同状态的脚本
- firebase - 试图在个人资料视图SwiftUI上显示获取的firebase数据
- python - 如何从邻接列表构建嵌套树结构?
- jupyter-notebook - 如何在 PyCharm 中编辑 Jupyter Notebook 元数据?
- html - ios 的 slick 解决方法
- python - 如何使用 z3py 设置“最多 n 次”等要求?
- python - 使用pyaudio的回调模式使用pydub播放音频时出现问题
- php - 如何在 php 文件中包含静态资源,如图像、css 和 javascript
- sql - 针对 dbms 问题改进 sql 查询