Инициализация Biginteger в Java - PullRequest
0 голосов
/ 29 мая 2018

Я не понимаю значения "" + 1 в следующей инициализации BigInteger в Java:

BigInteger fact = new BigInteger("" + 1);

Ответы [ 3 ]

0 голосов
/ 29 мая 2018

Как написано в документации: https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html

У BigInteger есть конструктор, который принимает String.И когда вы объявляете выражение как "" + 1, тип будет вычисляться для первого типа слева направо, следовательно, это будет строка.

Его буквально совпадает с new BigInteger("1")

Почему кто-то будет делать это, как бы то ни было, кроме учеников в классе или людей на собеседованиях, мне неведомо:)

0 голосов
/ 29 мая 2018

Это просто ленивый способ превратить int в строку.Это, вероятно, имеет больше смысла, когда int является переменной.Например,

public void doStuff(int i) {
    BigInteger fact = new BigInteger("" + i) ;
    ...
}

Как уже указывали другие, есть и другие способы достичь этого, но в этом случае (когда int является переменной), возможно, это наименьшее количество символов

0 голосов
/ 29 мая 2018

Это ленивый способ превратить целое число в строку.

""+1

- это конкатенация пустой строки и целого числа 1, которое добавляется к пустой строке, в результате чего получается строка "1".

Вы также можете просто написать

BigInteger fact = new BigInteger("1"); 
...