关于JavaFrimeExtExtry:在Java中不能将字符串转换为整数

Cannot convert String to Integer in Java

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
4
5
6
7
   if ( data != null )
   {
        int theValue = Integer.parseInt( data.trim(), 16 );
        return theValue;
   }
   else
       return null;

我有一个6042076399的字符串,它给了我错误:

1
2
3
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年4月8日):

正如下面的评论所指出的,这样做实际上更好:

1
2
String numStr ="123";
int num = Integer.parseInt(numStr);


一个Integer不能保持这个值。6042076399(413424640921,十进制)大于2147483647,整数可以容纳的最大值。

尝试使用Long.parseLong


这是正确的方法,但您的值大于int的最大大小。

int能容纳的最大尺寸是231-1或2147483647。您的价值是6042076399。如果需要原始类型,您应该考虑将其存储为long。一个long的最大值显著大于-263-1。另一个选择可能是BigInteger


该字符串大于integer.max_值。不能分析超出整数范围的内容。(我想是2^31-1)。


除了其他人的回答之外,如果字符串中有8个以上的十六进制数字(但最多16个十六进制数字),可以使用Long.parseLong()将其转换为long,而不是使用Integer.parseInt()将其转换为int。