Próbuję odczytać naprawdę duże liczby ze standardowego wejścia i dodać je razem.Jak przekonwertować ciąg na BigInteger?
Jednak, aby dodać do BigInteger, muszę korzystać 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 jak BigInteger.valueOf()
zajmuje long
tylko, nie mogę dodać numery większe niż long
„s wartości max (9223372036854775807).
Ilekroć próbuję dodać 9223372036854775808 lub więcej, otrzymuję NumberFormatException (który jest całkowicie oczekiwany).
Czy jest coś takiego jak BigInteger.parseBigInteger(String)
?