Próbuję odczytać naprawdę duże liczby ze standardowego wejścia i zsumować je.
Jednak aby dodać do BigInteger, muszę użyć 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)));
}
To działa dobrze, ale jako BigInteger.valueOf()jedyny zajmuje a long, nie mogę dodać liczb większych niż longwartość maksymalna (9223372036854775807).
Ilekroć próbuję dodać 9223372036854775808 lub więcej, otrzymuję NumberFormatException (co jest całkowicie oczekiwane).
Czy jest coś takiego BigInteger.parseBigInteger(String)?