为了账号安全,请及时绑定邮箱和手机立即绑定

确定数字中数字的基本程序不适用于更高的数字?

确定数字中数字的基本程序不适用于更高的数字?

浮云间 2022-08-17 12:22:15
我制作了一个小代码块,其目标是尝试将数字的所有数字存储到数组中。例如,数字“123”将存储为 {1,2,3}。一切似乎都运行良好,除非数字的长度大于10。是我的方法有问题吗?确切的错误消息是线程“main” java.lang.NumberFormatException 中的异常:对于输入字符串:“1202020202020202020” at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.base/java.lang.Integer.parseInt(Integer.java:652) at java.base/java.lang.Integer.parseInt(Integer.java:770) at test.main(test.java:8)public class test {public static void main(String[] args){    //This block of code parses the zipcode and stores each number it has into an array. It also fetches the length, which is used later.    String input = args[0];           int length = input.length();    int zipcode = Integer.parseInt(args[0]);    int[] digits = new int[length];             for(int i = 0; i < length ; i++){         digits[i] = zipcode % 10;         zipcode = zipcode /10;    }}}
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

您的代码将处理的最大数字是 Integer.MAX_VALUE,这是2147483647。除此之外,您正在尝试解析一个不适合整数的数字。使用Long会给你更多的空间。

刚刚看到@user207421的评论,他/她是对的...你真的不需要把你的字符串存储为一个数值。如果您必须这样做,并且想要处理非常大的数字,则可以使用BigDecimal。

另外,根据你说你想要的,我认为你的最终数组将按照你想要的顺序相反。


查看完整回答
反对 回复 2022-08-17
  • 1 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信