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

Integer.parseInt转换非空字符串抛出NumberFormatException异常问题咨询

报错根因

  • Java 中Integer为32位有符号整数,合法取值范围是 -2147483648 到 2147483647
  • 你输入的字符串"8801609054"对应的数值为8801609054,远大于Integer的最大值2147483647,超出类型承载上限因此抛出NumberFormatException,和空值、null的触发场景无关

可落地解决方案

方案1:改用长整型接收数值

如果业务场景允许使用64位整数存储该数值,直接替换转换方法即可:

// 64位Long的取值范围为-9223372036854775808 ~ 9223372036854775807,完全覆盖8801609054的取值
long result = Long.parseLong("8801609054");

方案2:提前做范围校验后强转

如果业务要求必须返回Integer类型,先校验输入数值是否在合法范围内,超范围时提前处理:

String input = "8801609054";
long tempNum = Long.parseLong(input);
if (tempNum > Integer.MAX_VALUE || tempNum < Integer.MIN_VALUE) {
    // 此处添加自定义业务提示/异常处理逻辑
    throw new IllegalArgumentException("输入数值超出整型可承载范围");
}
int result = (int) tempNum;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 05:54:03