Как преобразовать 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 , я не могу добавить числа, превышающие максимальное значение long (9223372036854775807).

Всякий раз, когда я пытаюсь добавить 9223372036854775808 или более, я получаю исключение NumberFormatException (что полностью ожидалось).

Есть что-то вроде BigInteger.parseBigInteger(String) ?

Использование конструктора

BigInteger (String val)

Переводит десятичное строковое представление BigInteger в BigInteger.

Javadoc

Согласно документации :

BigInteger (String val)

Переводит десятичное строковое представление BigInteger в BigInteger.

Это означает, что вы можете использовать String для инициализации объекта BigInteger , как показано в следующем fragmentе:

 sum = sum.add(new BigInteger(newNumber)); 

BigInteger имеет конструктор, где вы можете передать строку в качестве аргумента.

попробуйте ниже,

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

Вместо использования valueOf(long) и parse() вы можете напрямую использовать конструктор BigInteger, который принимает строковый аргумент:

 BigInteger numBig = new BigInteger("8599825996872482982482982252524684268426846846846846849848418418414141841841984219848941984218942894298421984286289228927948728929829"); 

Это должно дать вам желаемое значение.

Для цикла, в котором вы хотите преобразовать array strings в array bigIntegers выполните следующее:

 String[] unsorted = new String[n]; //array of Strings BigInteger[] series = new BigInteger[n]; //array of BigIntegers for(int i=0; i 
  • Java String.split () Regex
  • Есть ли способ избавиться от акцентов и преобразовать целую строку в обычные буквы?
  • Как преобразовать объект String в Boolean Object?
  • Извлечь имя файла и расширение в Bash
  • Проверить строку для палиндрома
  • Присвоение массиву char значения в C
  • Удаление символов строки строки из строки Java
  • Преобразование символа в числовое значение ASCII в java
  • В чем разница между String и StringBuffer в Java?
  • c #: Как использовать перечисление для хранения строковых констант?
  • Как реализуется std :: string?
  • Давайте будем гением компьютера.