我在Kotlin中寻找一个类似于Java的Integer.toHexString()的函数。是否有内置的东西,或者我们必须手动编写一个函数来将Int转换为String?
Integer.toHexString()
Int
String
neekobn81#
您仍然可以通过调用java.lang.Integer上的静态函数来使用Java转换:
java.lang.Integer
val hexString = java.lang.Integer.toHexString(i)
而且,从Kotlin1.1开始,Kotlin标准库中也有一个函数可以进行转换:fun Int.toString(radix: Int): String返回指定radix中此Int值的字符串表示形式。但是请注意,这仍然不同于Integer.toHexString(),因为后者执行无符号转换:
fun Int.toString(radix: Int): String
radix
println((-50).toString(16)) // -32 println(Integer.toHexString(-50)) // ffffffce
但是对于实验性的Kotlin无符号类型,现在可以从负数无符号转换中获得与Integer.toHexString(-50)相同的结果:
Integer.toHexString(-50)
println((-50).toUInt().toString(16)) // ffffffce
gg58donl2#
你可以简单地这样做:"%x".format(1234)
"%x".format(1234)
h9vpoimq3#
如果您需要在小于10(十六进制)的字节前添加零,例如您需要字符串-“0 E”,则用途:"%02x".format(14)
"%02x".format(14)
5ktev3wc4#
可以获取指定基数的字符串。例如,HexString的扩展函数:
fun Int.toHexString(): String = toString(16)
4条答案
按热度按时间neekobn81#
您仍然可以通过调用
java.lang.Integer
上的静态函数来使用Java转换:而且,从Kotlin1.1开始,Kotlin标准库中也有一个函数可以进行转换:
fun Int.toString(radix: Int): String
返回指定
radix
中此Int
值的字符串表示形式。但是请注意,这仍然不同于
Integer.toHexString()
,因为后者执行无符号转换:但是对于实验性的Kotlin无符号类型,现在可以从负数无符号转换中获得与
Integer.toHexString(-50)
相同的结果:gg58donl2#
你可以简单地这样做:
"%x".format(1234)
h9vpoimq3#
如果您需要在小于10(十六进制)的字节前添加零,例如您需要字符串-“0 E”,则用途:
"%02x".format(14)
5ktev3wc4#
可以获取指定基数的字符串。
例如,HexString的扩展函数: