当前位置: 首页 > 知识库问答 >
问题:

确定数字中数字的基本程序不适用于较大的数字?

万浩淼
2023-03-14

我做了一小段代码,目的是尝试将一个数字的所有数字存储到一个数组中。例如,数字“123”将存储为{1,2,3}。一切似乎都很好,除了数字的长度大于10。我的方法有什么问题吗?确切的错误消息是

异常线程"main"java.lang.NumberFormatException:对于输入字符串:"1202020202020202020"在java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)在java.base/java.lang.Integer.parseInt(Integer.java:652)在java.base/java.lang.Integer.parseInt(Integer.java:770)在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个答案

东明德
2023-03-14

代码将处理的最大数字是Integer。MAX_VALUE,即2147483647。除此之外,您还试图解析一个不适合整数的数字。使用Long将为您提供更多空间。

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

此外,根据你所说的你想要的,我认为你的最终数组将是你想要的相反顺序。

 类似资料:
  • 为什么下面的代码不将输出限制为前三个字符? 输出: 我希望输出为:

  • 问题内容: 我最近一直在研究一些数据库搜索功能,希望获得一些信息,例如每个文档的平均单词数(例如数据库中的文本字段)。到目前为止,我发现的唯一内容(没有在DB外部进行选择的语言处理)是: 这似乎可行*,但您还有其他建议吗?我目前使用的是MySQL 4(希望很快将其迁移至该应用程序的版本5),但也对通用解决方案感兴趣。 谢谢! *我可以想象这是确定它的一种相当粗糙的方法,因为它也没有考虑内容等中的H

  • 问题内容: 我想制定一个程序来找出一个字符串中有多少个单词,并用空格,逗号或其他字符分隔。然后再将总数相加。 我正在做一个平均计算器,所以我想要数据的总数,然后将所有单词加起来。 问题答案: 更新: Xcode 10.2.x•Swift 5或更高版本 使用Foundation方法并将设置设置为选项: 或使用本机Swift 5的新属性和split方法: 扩展以支持子字符串:

  • 为什么数学模块返回错误的结果? 结果 在这里,结果是正确的。 结果 这里的结果是不正确的。 为什么会这样呢?

  • 我的问题可能很傻,实际上我有一个解决这个问题的方法。但我仍然对它为什么会发生感兴趣。我的打字脚本文件中有两个数字。这是他们的定义。 在我的超文本标记语言输入框中,我也设置了属性type="number",我填充了一个数字为mAramValue。之后,我对这两个数字进行了比较。这是我所做的。 这是实际的控制台输出。 10通常大于5,但结果显示并非如此。我的解决方法是将数字转换为字符串,然后将其转换回

  • 我正在尝试使用用户输入将数字放入一个数组,然后找到这些数字的平均值,也找到哪些数字大于平均值。这些数字进入一个数组,但当我试图求平均数时,我无法求出平均数,以及哪些数字大于平均数,因为对于试图求出大于平均数的数字的部分,并非所有变量都是可见的。但是,当我允许这个部分看到所有的变量(don't But{}围绕某些部分)时,它会找到每一个数的平均值。现在,它为每个数字打印平均值,而为大于平均值的数字打