如何将INT转换为Kotlin的十六进制字符串?
我在找Kotlin的Java的Integer.toHexString()
类似的函数。 有什么内置的,或者我们必须手动编写一个函数来将Int
转换为String
?
至于Kotlin 1.0.6, kotlin-stdlib
没有这个功能,你必须使用java.lang.*
类来完成转换:
val hexString = java.lang.Integer.toHexString(i)
但是现在的Kotlin资源包含这个功能:
@SinceKotlin("1.1") @kotlin.internal.InlineOnly public inline fun Int.toString(radix: Int): String = java.lang.Integer.toString(this, checkRadix(radix))
看起来,它可能会被添加到Kotlin 1.1 stdlib以及许多其他,包括那些用自定义基数解析数字(虽然没有专门为十六进制功能)。 然后你可以像这样调用它来获得一个十六进制字符串:
myInt.toString(16)
但是,请注意, 这仍然不同于 Integer.toHexString()
,因为后者执行无符号转换:
println((-50).toString(16)) // -32 println(Integer.toHexString(-50)) // ffffffce