我想将大String转换为Integer,但将NumberForamtExceptin发生为:
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Caused by: java.lang.NumberFormatException: For input string: "56465478484"
我尝试所有将String转换为数字的方法,例如
Integer.parseInt().
Integer.valueOf().
and others
当我输入的数字大于9时,就会发生异常。 任何帮助表示赞赏
答案 0 :(得分:1)
您需要使用BigInteger
而不是int
作为变量。
Integer
(int
)变量范围是-2,147,483,648 .. 2,147,483,647
。因此,任何数字上大于数字的地方,都会导致Java错误。
String s0 = "23983838282828388382";
String s1 = "11929291882383717771";
BigInteger bi0 = new BigInteger(s0);
BigInteger bi1 = new BigInteger(s1);
// you can do math operations on BigIntegers
BigInteger biSum = bi0.sum(bi1); // it's not pretty, but it works