我正在寻找与 Kotlin 中的 Java
Integer.toHexString()
类似的功能。有没有内置的东西,或者我们必须手动编写一个函数来将Int
转换为String
?
您仍然可以通过调用
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
你可以简单地这样做:
"%x".format(1234)
如果您需要在小于 10(十六进制)的字节前添加零,例如您需要字符串 - "0E" 则使用:
"%02x".format(14)
获取指定基数的字符串
例如,HexString 的扩展函数:
fun Int.toHexString(): String = toString(16)