число больше long (java)

в задаче столкнулся с такой необходимостью. Нужно считать сканером с консоли число больше long. Я так понимаю нужно будет заносить это число в BigIneteger, но каким методом считать сканером не понимаю, или нужно считать как строку и преобразовать, но можно ли преобразовать строку в BigIneteger?


Ответы (3 шт):

Автор решения: Sherzod Mamadaliev

Используйте метод nextBigInteger класса Scanner.

Вот пример:

import java.math.BigInteger;
import java.util.Scanner;

public class Demo1 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        BigInteger number = in.nextBigInteger();
        System.out.println(number);
    }
}

А чтобы преобразовать строку в BigInteger, можно так попробовать:

import java.math.BigInteger;
import java.util.Scanner;

public class Demo2 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String line = in.nextLine();
        BigInteger number = new BigInteger(line);

        System.out.println(number);
    }
}
→ Ссылка
Автор решения: Эникейщик

Судя по комментариям, вычислять не надо, надо только сравнить. А т.к. 9223372036854775807 тоже не помещается в long, то можно и сравнивать строки. Сначала длину, которая длина больше, то и число больше. Если длины одинаковые, то уже сравнить лексически строки.

→ Ссылка
Автор решения: Korruzo

всем спасибо, ваша инфа была полезна для изучения. мне помогло применение исключений try - catch. то есть в try я проводил сравнение чисел long и ниже, а в исключение уже вывел в строке то что больше long.

→ Ссылка