无法将字符串转换为Java中的整数[重复
-
29-09-2019 - |
题
这个问题在这里已经有一个答案:
- 如何将字符串转换为Java中的INT? 42个答案
我写了一个函数将字符串转换为整数
if ( data != null )
{
int theValue = Integer.parseInt( data.trim(), 16 );
return theValue;
}
else
return null;
我有一个6042076399的字符串,这给了我错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "6042076399"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:461)
这不是将字符串转换为整数的正确方法吗?
解决方案
这是我更喜欢这样做的方式:
编辑(2015年8月4日):
如下评论所述,实际上最好这样做:
String numStr = "123";
int num = Integer.parseInt(numStr);
其他提示
一个 Integer
无法持有该价值。 6042076399(十进制中的413424640921)大于2147483647,整数最大。
尝试使用 Long.parseLong
.
那是正确的方法,但是您的价值大于 int
.
最大尺寸 int
可以保持231 -1,或2,147,483,647。您的价值为6,042,076,399。您应该将其存储为 long
如果您想要原始类型。长的最大值显着更大-263 - 1.另一个选择可能是 BigInteger
.
该字符串大于integer.max_value。您不能解析超出整数范围的东西。 (我相信他们最多达到2^31-1)。
除了其他人的回答之外,如果您的字符串超过8个十六进制数字(但最多可达16个十六进制数字),则可以将其转换为长时间 Long.parseLong()
而不是使用int Integer.parseInt()
.
不隶属于 StackOverflow