这个问题在这里已经有一个答案:

我写了一个函数将字符串转换为整数

   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().

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top