Java / Scala BigInteger粘贴

前端之家收集整理的这篇文章主要介绍了Java / Scala BigInteger粘贴前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 Java BigInteger类的问题:我不能将一个大的值粘贴到BigInteger.例如,假设我要为这个数字分配一个BigInteger:

26525285981219105863630848482795

我不能直接分配它,因为编译器认为它是一个整数:

val bi = 26525285981219105863630848482795 //compile error

但我希望它成为一个BigInteger.有没有办法直接粘贴到源代码?如果没有这样的方法,那么Scala中有没有一种方法,它有更容易使用BigInt类?谢谢您的帮助.

解决方法

rtperson的 answer从Java的角度来说是正确的,但是在Scala中,您可以使用与java.math.BigIntegers可以做的更多的比较.

例如:

scala> val a = new BigInteger("26525285981219105863630848482795");
a: java.math.BigInteger = 26525285981219105863630848482795

scala> a + a
:7: error: type mismatch;
found   : java.math.BigInteger
required: String
       a + a

Scala中规范课程的典型方法是使用位于该课程的工厂
companion object.当您在Scala中写入Foo(args)时,将其转换为Foo.apply(args),其中Foo是单例对象 – 伴随对象.因此,为了找到构建BigInts的方法,您可以查看Scala库中的BigInt对象,特别是其应用构造.

因此,构建BigInt的三种方式是:传递一个Int,一个Long或一个String来进行解析.例:

scala> val x = BigInt(12)
x: BigInt = 12

scala> val y = BigInt(12331453151315353L)
y: BigInt = 12331453151315353

scala> val z = BigInt("12124120474210912741099712094127124112432")
z: BigInt = 12124120474210912741099712094127124112432

scala> x + y * z
res1: BigInt = 149508023628635151923723925873960750738836935643459768508

请注意,您可以使用BigInt进行自然的算术运算,这对BigInteger是不可能的!

猜你在找的Java相关文章