创建人 | 王琦 |
问题标题 | 功能实现错误 |
问题分类 | equals()方法使用错误 |
一级话题 | String 类型的字符串,和StringBuilder类型,使用equals方法比较,得出的并不是正确的 内容比较的值 |
问题补充 | 用equals方法判断是否为回文字符串,运行结果为全部都是不回文,即equals结果全为false |
附件 | [Java] 纯文本查看 复制代码 System.out.println("检测是否为回文字符串"+'\n'+"输入要检测的字符串,中间用逗号隔开:"); |
问题答案 | 问题分析: String类中重写了equals方法,比较的是内容,但只有参数内容也是一个字符串并且内容相同才会给出true。 StringBuilder并不是String,因此需要把它用toString方法转化为字符串才可以正确的用equals比较内容是否相同。 |
问题解决方法: 修改代码部分: [Java] 纯文本查看 复制代码 if(strs.equals(sb.reverse())) 修改为 [Java] 纯文本查看 复制代码 if(strs.equals(sb.reverse().toString())) |
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |