17

我有这样的方法:

Integer.parseInt(myInt)

不是这个整数变长,我得到以下异常:

java.lang.NumberFormatException: For input string: "4000123012"

我能做些什么来避免这个错误并且仍然保持所有功能运行?

我试过用BigInteger但是没有parse方法,或者没找到。

4

4 回答 4

26

像这样使用它。

 BigInteger number = new BigInteger(myInt);
于 2013-05-24T08:05:32.887 回答
8

我的解决方案:

String sLong = "4000123012";
long yourLong = Long.parseLong(sLong);
System.out.println("Long : "+yourLong);

输出 :

Long : 4000123012
于 2013-05-24T08:07:05.643 回答
2

您也可以将 Long.parse 用于整数:

Long.parseLong(myInt)

这当然会返回一个long.

于 2013-05-24T08:08:02.160 回答
1

Java 整数最大值为 2147483647(限制表)。

您可以通过Long.parseLong(String s)将 String 转换为 Long并通过将 long 传递给BigInteger.valueOf(long l)来获取 BigInteger

String s = "4000123012";
long l = Long.parseLong(s);
BigInteger bi = BigInteger(l);

编辑:在将一种类型解析为另一种类型的情况下,您总是必须尝试捕获异常,并在这种情况下采取行动,例如设置一些默认值。

正如Alpesh Prajapati建议的那样,将 String 传递给构造函数会更好:

BigInteger number = new BigInteger(myInt);
于 2013-05-24T08:15:57.487 回答