java - 仅包含数字的输入字符串的 Java 数字格式异常
问题描述
java.lang.NumberFormatException
StackOverflow 上已经存在许多线程。但是,他们似乎都没有回答我的问题。
我想将以下字符串转换为整数:idString = "10104102103"
. 我尝试了以下两种方法将其转换为整数
int id = Integer.parseInt(idString);
Integer id = Integer.valueOf(idString);
执行其中任何一个时,我收到以下错误:
java.util.concurrent.ExecutionException: java.lang.NumberFormatException: For input string: "10104102103"
.
在其他线程中,提到了空格、NaN、非数字字符等作为可能发生此错误的原因。但是,这里没有这些案例。
我现在的问题是:
- 是什么导致了这个错误?
- 我如何让它工作?
解决方案
导致错误的原因是您尝试解析的数字 ,10104102103
大于int 的最大可能值, 2147483647
。
它在 a 的范围内long
,因此您可以使用:
long id = Long.parseLong(idString);
但是,如果您的数字即使对于 long 来说也太大了,那么您将不得不使用任意比例的整数,如此处所回答的那样。
推荐阅读
- nestjs - nestjs REQUEST 范围服务提供者
- python - json数组转换成json数组 - Python
- amazon-web-services - 在 Windows 上为 python-docx 库创建 Python AWS Lambda 部署包时出错
- sharepoint - SharePoint 2016 网站集 Web 分析报告为空
- numpy - numpy/scipy 中的异形渐变填充
- sed - 使用 sed 在数字文本周围加引号
- javascript - 选中单选按钮时更改不同元素的类名
- android-file - 为什么我不能在 android 10 中使用 whit 文件?
- amazon-web-services - 为 EC2 实例的非特权用户承担角色“拒绝访问”
- python - 如何单击“下一步”并使用 Selenium 浏览所有页面?