web-dev-qa-db-ja.com

KotlinでIntをHex Stringに変換する方法は?

KotlinのJavaのInteger.toHexString()に似た関数を探しています。組み込みのものはありますか、それともIntStringに変換する関数を手動で記述する必要がありますか?

29
milosmns

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には、カスタム基数で数値を解析するためのものを含め、他の多くのオプションと一緒に追加される可能性があります(ただし、hexには特別な機能はありません)。次に、このように呼び出して16進数の文字列を取得できます。

_myInt.toString(16)
_

ただし、これはInteger.toHexString()とは異なります。後者は符号なし変換を実行するためです。

_println((-50).toString(16)) // -32
println(Integer.toHexString(-50)) // ffffffce
_
48
hotkey

次のように簡単に実行できます:"%x".format(1234)

2
M.Sameer

10(hex)未満のバイトの前にゼロを追加する必要がある場合、たとえば文字列-"0E"が必要な場合は、"%02x".format(14)を使用します

2
Artem Botnev