Java 来自文件的输入拒绝成为int或被读取为int

Java 来自文件的输入拒绝成为int或被读取为int,java,Java,已解决:问题是整数的值太高,因此不能存储在int中,而必须存储在BigInteger中 这段代码旨在从文件(如下所示)读取输入,我希望它被读取为int或解析为int,因为我需要能够对其应用数学。它总是抛出异常“InputMismatchException”。 我已经阅读了许多其他问题及其解决方案,但仍在实施它们的解决方案,几乎没有成功。解决方案包括将字符串解析为int,使用“ReplaceAll”删除空白 代码: 文件: 错误: Exception in thread "main" java.u

已解决:问题是整数的值太高,因此不能存储在int中,而必须存储在BigInteger中

这段代码旨在从文件(如下所示)读取输入,我希望它被读取为int或解析为int,因为我需要能够对其应用数学。它总是抛出异常“InputMismatchException”。 我已经阅读了许多其他问题及其解决方案,但仍在实施它们的解决方案,几乎没有成功。解决方案包括将字符串解析为int,使用“ReplaceAll”删除空白

代码:

文件:

错误:

Exception in thread "main" java.util.InputMismatchException: For input string: "46886794368454912286794394376459086711"
at java.util.Scanner.nextInt(Scanner.java:2097)
at java.util.Scanner.nextInt(Scanner.java:2050)
at Encryption.main(Encryption.java:881)
有一个最大值, 2^31-1,即10位数字2147483647。 您试图输入的整数有38位十进制数字, 所以它比一个整数所能容纳的最大数要大得多 Java不允许将其放入整数中

您可能想尝试与其他人一起工作。 比如说,

BigInteger filetonumbers = new BigInteger(nospaces);
如果你 你会发现很多问题和答案;其中一些是 与你无关,但有些人会讨论 并显示了
类以非平凡的方式使用。

int的长度从
-2147483648到2147483647
并且您正在分配超出int容量的大值 长数据类型的容量也很大

at java.util.Scanner.nextInt(Scanner.java:2097)
也许扫描程序无法解析你的int,因为它太大而不能成为int


要将其作为一个数字吗?首先:对于
int
,此数字太大,请参阅。然后:打印
nospaces
的值。你得到了什么?@AbhishekPanjabi是的,我希望这个数字能够存储在一个变量中尝试使用double filetonumbers=double.parseDouble(nospaces)@pzaenger有什么办法可以绕过int的限制吗?谢谢,你能给我一个如何使用biginger的例子吗,我已阅读了您提供的链接,但仍不确定如何使用它。您将无法将其转换为类似于使用
parseInt
的原语;实际上,您必须将所有数字(至少是任何大数字)存储在
biginger
对象中,并学习允许您对它们进行数学运算的函数(例如,您不能使用
+
添加两个大整数,但可以使用
添加
函数)。我为答案添加了另一个起始链接。
BigInteger filetonumbers = new BigInteger(nospaces);
at java.util.Scanner.nextInt(Scanner.java:2097)