使BigInteger等于Java中的另一个BigInteger变量

时间:2015-07-03 13:40:10

标签: java

我想知道有没有办法将BigInteger变量的值更改为另一个BigInteger的值?好像' BigInteger.valueOf'并不接受其他BigIntegers作为其价值,也不会接受新的BigInteger'。

3 个答案:

答案 0 :(得分:7)

我没有仔细阅读你的问题。

  

我想知道有没有办法将BigInteger变量的值更改为另一个BigInteger的值

不,因为BigInteger是不可变的。

但是,您可以创建一个与原始值相同的新BigInteger实例:

一种方法是转换为String并从该String构造副本:

BigInteger source = ...
BigInteger target = new BigInteger (source.toString());

另一种方法是使用字节数组:

BigInteger target = new BigInteger (source.toByteArray());

答案 1 :(得分:4)

BigInteger是无法改变的,你无法改变价值。

old = new BigInteger( newValue );

进一步阅读:

https://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.html

修改

要从其他BigInteger分配你可以使用:

BigInteger value = new BigInteger("0").add(oldValue);

答案 2 :(得分:0)

 BigInteger a = new BigInteger("10");
 BigInteger b = new BigInteger(a.toString());
 System.out.println(b);