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

求助:Java中十六进制字符串解析触发NumberFormatException异常

解决java.lang.NumberFormatException异常问题

问题原因

你使用的字符串"0xD437D437"对应的十六进制数值为3590431799,而Java中Integer类型的取值范围是-2147483648到2147483647,该数值已超出Integer的最大值,因此调用Integer.decode()时会抛出NumberFormatException。

解决方案

方案一:改用Long.decode()处理

Long类型的取值范围远大于Integer(-9223372036854775808到9223372036854775807),可以容纳目标数值,直接替换方法即可:

String d = "0xD437D437";
System.out.println(Long.decode(d));

方案二:手动解析为Long类型

也可以去掉十六进制前缀后,用Long.parseLong()指定基数解析:

String d = "0xD437D437";
long value = Long.parseLong(d.substring(2), 16);
System.out.println(value);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:35:23