Я ищу аналогичную функцию для Java Integer.toHexString()
в Котлине. Есть ли что-то встроенное, или нам нужно вручную написать функцию для преобразования Int
в String
?
Как преобразовать Int в Hex String в Kotlin?
Ответ 1
Что касается Kotlin 1.0.6, kotlin-stdlib
не имеет для этого функций, и для преобразования необходимо использовать классы java.lang.*
:
val hexString = java.lang.Integer.toHexString(i)
Но текущие источники Kotlin содержат эту функцию:
@SinceKotlin("1.1")
@kotlin.internal.InlineOnly
public inline fun Int.toString(radix: Int): String =
java.lang.Integer.toString(this, checkRadix(radix))
Похоже, что он, скорее всего, будет добавлен в Kotlin 1.1 stdlib наряду со многими другими, в том числе для разбора чисел с помощью настраиваемого радиуса (хотя для функций без гексагона нет никаких функций). Затем вы сможете вызвать его так, чтобы получить шестнадцатеричную строку:
myInt.toString(16)
Обратите внимание, однако, что это будет по-прежнему отличаться от Integer.toHexString()
, потому что последнее выполняет беззнаковое преобразование:
println((-50).toString(16)) // -32
println(Integer.toHexString(-50)) // ffffffce
Ответ 2
Вы можете просто сделать это так: "%x".format(1234)
Ответ 3
Если вам нужно добавить ноль перед байтами, которые меньше 10 (шестнадцатеричные), например, вам нужна строка - "0E", тогда используйте: "%02x".format(14)