Конвертировать длинную строку, содержащую только числа в длинную - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь преобразовать строку (32 цифры) в длинную, и она возвращает исключение NumberFormatException. Я пробовал это с Long.parseLong () и объектом Long, но кость из них работала. код:

class ConvertStringToLong{
    public static void main(String in){
        long out;
        out=java.lang.Long.parseLong(in);
        System.out.println(out);
    }
}

я тоже пробовал

class ConvertStringToLong{
    public static void main(String in){
        long out;
        out = new Long(in);
        System.out.println(out);
    }
}

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

Документация здесь (https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html) говорит, что:

BigInteger должен поддерживать значения в диапазоне от -2 ^ Integer.MAX_VALUE (эксклюзив) до + 2 ^ Integer.MAX_VALUE (эксклюзив)и может поддерживать значения за пределами этого диапазона. Диапазон вероятных простых значений ограничен и может быть меньше полного поддерживаемого положительного диапазона BigInteger. Диапазон должен быть не менее 1 - 2 ^ 500000000.

Вы можете использовать объект BigInteger.

1 голос
/ 01 ноября 2019

Тип данных long представляет собой 64-разрядное целое число со знаком, поэтому его максимальное значение составляет 2 ^ 63 - 1, что составляет 19 цифр. Для представления больших чисел, чем это, вам нужно будет использовать другой тип данных, например BigInteger , который допускает произвольно большие числа. Конструктор new BigInteger(String val) будет анализировать строку как BigInteger.

...