Integer.parseInt("9646324351")报NumberFormatException
原因
NumberFormatException是一个Java异常,表示在将字符串转换为整数时发生错误。在这种情况下,Integer.parseInt("9646324351")
导致NumberFormatException的原因是结果超出了Integer的取值范围。
在Java中,Integer.parseInt()
方法将字符串转换为int类型的整数。然而,int数据类型的范围是从-2,147,483,648到2,147,483,647(包括边界值)。如果要转换的字符串表示的数字超过了这个范围,就会抛出NumberFormatException异常。
对于字符串"9646324351",其表示的数字大于Integer的最大值,所以无法将其转换为int类型的整数,从而触发了NumberFormatException异常。
如果需要处理超出Integer范围的整数,可以考虑使用long数据类型或者BigInteger类来进行转换和操作。
解决方案
先转换为long类型,再与Integer的最大取值和最小取值进行比较
long number = Long.parseLong(numberString);
if (number > Integer.MAX_VALUE || number < Integer.MIN_VALUE) {
// 超过int的取值范围
System.out.println("数字超过了int的最大取值范围");
} else {
// 在int的取值范围内
int intValue = (int) number;
System.out.println("转换后的整数值:" + intValue);
}
分类:
问题解决
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~