仅包含数字的输入字符串的Java数字格式异常

仅包含数字的输入字符串的Java数字格式异常,java,string,integer,Java,String,Integer,StackOverflow上已经存在java.lang.NumberFormatException上的许多线程。然而,他们似乎都没有回答我的问题 我想将以下字符串转换为整数:idString=“10104102103”。我尝试了以下两种方法将其转换为整数 int id = Integer.parseInt(idString); Integer id = Integer.valueOf(idString); 当执行其中一个时,我得到以下错误: java.util.concurrent.Execu

StackOverflow上已经存在
java.lang.NumberFormatException
上的许多线程。然而,他们似乎都没有回答我的问题

我想将以下字符串转换为整数:
idString=“10104102103”
。我尝试了以下两种方法将其转换为整数

int id = Integer.parseInt(idString);
Integer id = Integer.valueOf(idString);
当执行其中一个时,我得到以下错误:

java.util.concurrent.ExecutionException:java.lang.NumberFormatException:对于输入字符串:“10104102103”

在其他线程中,有空格、NaN、非数字字符等被认为是发生此错误的原因。然而,这里没有这些病例

我现在的问题是:

  • 是什么导致了这个错误
  • 我如何让它工作

导致错误的原因是您试图解析的数字,
10104102103
大于2147483647

它在
的范围内,因此您可以使用:

long id = Long.parseLong(idString);

但是,如果你的数字太大了,即使是长的,你也只能使用任意比例的整数,正如回答的那样。

导致错误的原因是你试图解析的数字,
10104102103
,大于,
2147483647

它在
的范围内,因此您可以使用:

long id = Long.parseLong(idString);

但是,如果你的数字太大了,即使是长的,你也只能使用任意比例的整数,正如回答的那样。

10104102103
对于整数来说太大了。请使用
long
代替。
10104102103
对于整数来说太大了。请使用
long
代替。谢谢你的回复!我改变了它,但很快发现长时间也是不够的。我的问题被正确地标记为重复,引用的线程确实回答了问题。不过,谢谢你的建议。谢谢你的回复!我改变了它,但很快发现长时间也是不够的。我的问题被正确地标记为重复,引用的线程确实回答了问题。不过,谢谢你的建议。