如何将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