Je recherche une fonction similaire à la Integer.toHexString()
de Java dans Kotlin. Y a-t-il quelque chose de intégré ou devons-nous écrire manuellement une fonction pour convertir Int
en String
?
Comme pour Kotlin 1.0.6, kotlin-stdlib
N'a pas de fonctions pour cela, et il faut utiliser les classes Java.lang.*
Pour faire la conversion:
val hexString = Java.lang.Integer.toHexString(i)
Mais les sources actuelles de Kotlin contiennent cette fonction:
@SinceKotlin("1.1")
@kotlin.internal.InlineOnly
public inline fun Int.toString(radix: Int): String =
Java.lang.Integer.toString(this, checkRadix(radix))
Apparemment, il est susceptible d'être ajouté au stdlib de Kotlin 1.1 avec de nombreux autres, y compris ceux pour l'analyse des nombres avec radix personnalisé (bien qu'il n'y ait pas de fonctions spécialement pour hex). Ensuite, vous pourrez l'appeler comme ceci pour obtenir une chaîne hexadécimale:
myInt.toString(16)
Notez cependant que ce sera toujours différent de Integer.toHexString()
, car ce dernier effectue la conversion non signée:
println((-50).toString(16)) // -32
println(Integer.toHexString(-50)) // ffffffce
Vous pouvez simplement le faire comme ceci: "%x".format(1234)
Si vous devez ajouter zéro avant les octets dont moins de 10 (hex), par exemple vous avez besoin de la chaîne - "0E" alors utilisez: "%02x".format(14)