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

Java中将大数字字符串转为Integer遇NumberFormatException求助

解决Integer转大数字字符串的NumberFormatException问题

嘿,这问题我太熟啦!你遇到的NumberFormatException根源其实很简单:Integer类型的取值范围有严格限制——它的最大值是2147483647(也就是2的31次方减1,是个10位、以2开头的数字),而你要转换的字符串"56465478484"已经是11位数字了,远远超出Integer能容纳的上限,所以不管用Integer.parseInt()还是Integer.valueOf()都会触发异常。

给你几个针对性的解决方案:

  • 用Long类型处理常规大数字:如果你的数字在-9223372036854775808到9223372036854775807之间(也就是Long的取值范围,最多支持19位数字),直接换成Long.parseLong()或者Long.valueOf()就能解决:

    String bigNumberStr = "56465478484";
    Long convertedNumber = Long.parseLong(bigNumberStr);
    
  • 用BigInteger处理超大数字:如果你的数字可能超过Long的范围(比如超过19位),那就用Java自带的BigInteger类,它可以处理任意大小的整数:

    String hugeNumberStr = "123456789012345678901234567890";
    BigInteger hugeNumber = new BigInteger(hugeNumberStr);
    

最后给你提个小提醒:以后处理不确定范围的数字字符串时,先确认数字的长度和预期取值范围,再选对应的类型,就能避开这类坑啦!

内容的提问来源于stack exchange,提问作者Abd El-Razek Nageh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:07:47