在Java中初始化Biginteger

时间:2018-05-29 18:16:47

标签: java biginteger

在Java的"" + 1的以下初始化中,我不理解BigInteger的含义:

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

3 个答案:

答案 0 :(得分:2)

这是一种将整数转换为字符串的懒惰方式。

""+1

是空String和int 1的串联,后者附加到空String,从而生成字符串"1"

你也可以写

BigInteger fact = new BigInteger("1"); 

答案 1 :(得分:2)

正如文档中所写: https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html

BigInteger有一个接收String的构造函数。当您将表达式声明为"" + 1时,类型将从左到右计算为第一个类型,因此它将是一个String。

它与new BigInteger("1")

完全相同

为什么有人会这样做,但是除了欺骗学生在课堂上或面试的人超出我的范围之外:)

答案 2 :(得分:0)

这只是将int转换成字符串的懒惰方式。当int是变量时,它可能更有意义。例如

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

正如其他人指出的那样,有其他方法可以达到这个目的但在这种情况下(当int是一个变量时)它可能是最少的字符