如何为BigInteger分配一个非常大的数字?

crm*_*ham 7 java biginteger value-of

鉴于以下输入:

4534534534564657652349234230947234723947234234823048230957349573209483057
12324000123123
Run Code Online (Sandbox Code Playgroud)

我试图以BigInteger下列方式分配这些值.

public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        BigInteger num1 = BigInteger.valueOf(sc.nextLong());
        sc.nextLine();
        BigInteger num2 = BigInteger.valueOf(sc.nextLong());

        BigInteger additionTotal = num1.add(num2);
        BigInteger multiplyTotal = num1.multiply(num2);

        System.out.println(additionTotal);
        System.out.println(multiplyTotal);
    }
Run Code Online (Sandbox Code Playgroud)

第一个值超出了Long数的边界,因此我得到以下异常:

线程"main"中的异常java.util.InputMismatchException:对于输入字符串:"4534534534564657652349234230947234723947234234823048230957349573209483057"

我假设的BigInteger需要一个长型与使用valueOf()方法(如说在这里).如何将超大数字传递给BigInteger?

das*_*ght 8

当输入数字不适合时long,使用带String参数的构造函数:

String numStr = "453453453456465765234923423094723472394723423482304823095734957320948305712324000123123";
BigInteger num = new BigInteger(numStr);
Run Code Online (Sandbox Code Playgroud)