You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java整数回文判断代码异常:输入121输出111且始终返回false

问题原因分析

1. 反转逻辑错误:未更新原整数x

你的循环里每次执行 x % 10 时,x的值从来没被修改过。拿输入121举例:

  • 第一次循环:121 % 10 = 1,palindrome变成"1"
  • 第二次循环:x还是121,121 % 10 结果依旧是1,palindrome变成"11"
  • 第三次循环:x依旧是121,结果还是1,palindrome最终变成"111"
    这就是为什么输入121时,反转后的字符串是111——你每次都在取同一个数的最后一位,没有把已经处理过的最后一位从原数中移除。

2. 字符串比较错误:用==而非equals()

Java里 == 比较的是两个字符串对象的内存地址,不是实际内容。就算palindrome和s的内容完全一致,它们也是两个独立的字符串对象,== 会返回false。要判断字符串内容是否相同,必须用 equals() 方法。

内容的提问来源于stack exchange,提问作者Bonson Yusuf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 11:25:58