2

嗨,我有一个像这样的大字符串:

“999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999”

我希望将此字符串转换为长字符串。但我失败了。我做了:

Long.parseLong(longString);

但我收到一个错误:

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

有没有办法避免这种情况?

4

4 回答 4

9

像这样使用BigInteger类:

 BigInteger number = new BigInteger(longString);
于 2012-10-19T04:02:54.650 回答
4

你需要使用BigInteger. Long可能无法容纳那么大的数字。

这是BigInteger的 javadoc 。

于 2012-10-19T04:02:18.137 回答
3

您可能会使用BigInteger而不是 Long。

 BigInteger number = new BigInteger(longString);

Java BigInteger 示例

于 2012-10-19T04:09:23.857 回答
3

长: 参考

使用 8 字节存储值 from -9,223,372,036,854,775,808to9,223,372,036,854,775,807

如回答前所述,使用BigInteger.

于 2012-10-19T06:08:46.500 回答