如何在Kotlin中将整数转换为十六进制字符串?

ehxuflar  于 2023-03-03  发布在  Kotlin
关注(0)|答案(4)|浏览(475)

我在Kotlin中寻找一个类似于Java的Integer.toHexString()的函数。是否有内置的东西,或者我们必须手动编写一个函数来将Int转换为String

neekobn8

neekobn81#

您仍然可以通过调用java.lang.Integer上的静态函数来使用Java转换:

val hexString = java.lang.Integer.toHexString(i)

而且,从Kotlin1.1开始,Kotlin标准库中也有一个函数可以进行转换:
fun Int.toString(radix: Int): String
返回指定radix中此Int值的字符串表示形式。
但是请注意,这仍然不同于Integer.toHexString(),因为后者执行无符号转换:

println((-50).toString(16)) // -32
println(Integer.toHexString(-50)) // ffffffce

但是对于实验性的Kotlin无符号类型,现在可以从负数无符号转换中获得与Integer.toHexString(-50)相同的结果:

println((-50).toUInt().toString(16)) // ffffffce
gg58donl

gg58donl2#

你可以简单地这样做:"%x".format(1234)

h9vpoimq

h9vpoimq3#

如果您需要在小于10(十六进制)的字节前添加零,例如您需要字符串-“0 E”,则用途:"%02x".format(14)

5ktev3wc

5ktev3wc4#

可以获取指定基数的字符串。
例如,HexString的扩展函数:

fun Int.toHexString(): String = toString(16)

相关问题