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

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

58354 次浏览

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

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

而且,从 Kotlin 1.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

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

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