java – 如何将String转换为BigInteger?

我试图从标准输入中读取一些非常大的数字并将它们加在一起.

但是,要添加到BigInteger,我需要使用BigInteger.valueOf(long);:

private BigInteger sum = BigInteger.valueOf(0);

private void sum(String newNumber) {
    // BigInteger is immutable, reassign the variable:
    sum = sum.add(BigInteger.valueOf(Long.parseLong(newNumber)));
}

这工作正常,但由于BigInteger.valueOf()只需要很长时间,我不能添加大于long的最大值的数字(9223372036854775807).

每当我尝试添加9223372036854775808或更多时,我都会得到一个NumberFormatException(完全可以预料到).

有没有类似BigInteger.parseBigInteger(String)的东西?

解决方法:

使用构造函数

BigInteger(String val)

Translates the decimal String representation of a BigInteger into a BigInteger.

Javadoc

上一篇:c – 计算没有溢出的* a mod n


下一篇:Python:大型int键的快速字典