首页 > 解决方案 > 仅包含数字的输入字符串的 Java 数字格式异常

问题描述

java.lang.NumberFormatExceptionStackOverflow 上已经存在许多线程。但是,他们似乎都没有回答我的问题。

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

int id = Integer.parseInt(idString);
Integer id = Integer.valueOf(idString);

执行其中任何一个时,我收到以下错误:

java.util.concurrent.ExecutionException: java.lang.NumberFormatException: For input string: "10104102103".

在其他线程中,提到了空格、NaN、非数字字符等作为可能发生此错误的原因。但是,这里没有这些案例。

我现在的问题是:

标签: javastringinteger

解决方案


导致错误的原因是您尝试解析的数字 ,10104102103大于int 的最大可能值, 2147483647

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

long id = Long.parseLong(idString);

但是,如果您的数字即使对于 long 来说也太大了,那么您将不得不使用任意比例的整数,如此处所回答的那样


推荐阅读