2017-01-14 131 views
11

私はKotlinのJavaのInteger.toHexString()と同様の機能を探しています。組み込みのものがあるか、またはIntStringに変換する関数を手動で作成する必要がありますか? Kotlin 1.0.6、kotlin-stdlibについてはKotlinでIntを16進文字列に変換するには?

+0

注:私は、Javaから 'Integer'クラスを使用できることを知っています:)私は、もし可能であれば、純粋なKotlinアプローチを探しています。 – milosmns

+0

kotlinライブラリのほとんどは、標準的なJavaクラスの上に拡張メソッドを提供するだけです。言語とライブラリは、Javaクラスの使用を容易にするように設計されています。 Integer.toHexStringを使用しない理由は何ですか?冗長性を除いて、代替実装は何をもたらすでしょうか? –

+0

@JBNizet Integer.toHexString()を使用することに反対していません。たとえば、以下の@hotkeyの答えを見てください。短く、Intから直接アクセスできます。私は本当に私の仕事を完了するために何かを使用することができますが、私は何かコトリンのようなものを探していた。 – milosmns

答えて

18

は、このための機能を持っていない、と一つは、変換を行うためにjava.lang.*クラスを使用することがあります。

val hexString = java.lang.Integer.toHexString(i) 

しかし、現在のKotlin源containこの機能を:

@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に追加される可能性があります(カスタムの基数を持つ数字を解析するためのものを含みますが、特に16進数はありません)。

println((-50).toString(16)) // -32 
println(Integer.toHexString(-50)) // ffffffce 
:後者は符号なしの変換を実行するので、 Integer.toHexString()から これはまだ別のなること、しかし、

myInt.toString(16) 

注:その後、あなたは、16進数の文字列を取得するには、このようにそれを呼び出すことができます

+0

符号なし変換についての良い点。 – milosmns

関連する問題