我需要使用BigInteger,但在kotlin中找不到类似的东西。
在kotlin中有没有替代类到BigInteger的java?
或
我应该将java类导入kotlin吗?
答案 0 :(得分:15)
java.math.BigInteger
可以像任何其他Java类一样在Kotlin中使用。甚至有helpers in stdlib使常见操作更易于读写。您甚至可以自己扩展帮助程序以获得更高的可读性:
import java.math.BigInteger
fun Long.toBigInteger() = BigInteger.valueOf(this)
fun Int.toBigInteger() = BigInteger.valueOf(toLong())
val a = BigInteger("1")
val b = 12.toBigInteger()
val c = 2L.toBigInteger()
fun main(argv:Array<String>){
println((a + b)/c) // prints out 6
}
答案 1 :(得分:3)
你可以使用Kotlin的任何内置Java类,你应该这样做。它们的工作方式与Java中的完全相同。 Kotlin强调使用Java平台提供的功能而不是重新实现它们;例如,没有Kotlin特定的集合,只有Java集合上的一些接口,标准库也使用这些集合。
所以是的,你应该使用java.math.BigInteger
。作为奖励,当您使用来自Kotlin的BigInteger
时,您实际上可以使用运算符而不是函数调用:+
而不是add
,-
而非subtract
等等。
答案 2 :(得分:1)
或者,如果您要构建多平台(在Kotlin 1.2和1.3中进行实验),则可以使用https://github.com/gciatto/kt-math(我没有从属关系,只不过我正在使用它)。它基本上是纯Kotlin中的java.math。*(作为MPP的一部分,还有一些特定于平台的附加功能)。对我来说真的很有用。