You need to enable JavaScript to run this app. Java反转负数时抛出NumberFormatException异常的原因是什么
优惠活动
大模型
产品
解决方案
定价
更多

Java反转负数时抛出NumberFormatException异常的原因是什么

异常产生原因

  • 输入负数-124时代码执行逻辑出现格式冲突:
    1. sc.nextInt()读取到的整数为-124,转为字符串后内容为"-124"
    2. StringBuilder.reverse()会对整个字符串的所有字符做完全反转,最终得到的字符串为"421-",负号被移动到了字符串末尾
    3. JDK自带的Integer.parseInt()方法要求合法的整数字符串仅能将负号放在首字符位置,末尾带负号的"421-"不符合整数格式规范,因此抛出NumberFormatException

简易修复参考

如果要兼容负数反转,可以单独处理符号位:

Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sign = n < 0 ? -1 : 1;
// 仅反转数字部分
String numStr = new StringBuilder(String.valueOf(Math.abs(n))).reverse().toString();
// 反转后补回符号
System.out.println(sign * Integer.parseInt(numStr));

内容的提问来源于stack exchange,提问作者krishna murthy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 07:36:04