我试图从标准输入中读取一些非常大的数字并将它们加在一起.
但是,要添加到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.