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

问题描述 投票:0回答:4

我正在寻找与 Kotlin 中的 Java

Integer.toHexString()
类似的功能。有没有内置的东西,或者我们必须手动编写一个函数来将
Int
转换为
String

numbers integer int hex kotlin
4个回答
103
投票

您仍然可以通过调用

java.lang.Integer
上的静态函数来使用 Java 转换:

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

并且,从 Kotlin 1.1 开始,Kotlin 标准库中也有一个函数可以进行转换:

fun Int.toString(radix: Int): String

返回指定

Int
中此
radix
值的字符串表示形式。

但是请注意,这仍然与Integer.toHexString()

不同
,因为后者执行的是无符号转换:

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

但是对于实验性的 Kotlin 无符号类型,现在可以从负数无符号转换中获得与

Integer.toHexString(-50)
相同的结果:

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

23
投票

你可以简单地这样做:

"%x".format(1234)


23
投票

如果您需要在小于 10(十六进制)的字节前添加零,例如您需要字符串 - "0E" 则使用:

"%02x".format(14)


0
投票

获取指定基数的字符串

例如,HexString 的扩展函数:

fun Int.toHexString(): String = toString(16)
© www.soinside.com 2019 - 2024. All rights reserved.