2017-01-14 2 views
11

Ich suche eine ähnliche Funktion zu Javas Integer.toHexString() in Kotlin. Ist etwas eingebaut oder müssen wir manuell eine Funktion schreiben, um Int in String zu konvertieren?Wie konvertiert man Int in Hex String in Kotlin?

+0

Hinweis: Ich bin mir bewusst, dass ich die 'Integer'-Klasse von Java verwenden kann :) Ich suche nach einem reinen Kotlin-Ansatz, falls verfügbar. – milosmns

+0

Die meisten der Kotlin-Bibliothek besteht einfach darin, Erweiterungsmethoden zusätzlich zu Standard-Java-Klassen bereitzustellen. Die Sprache und die Bibliothek sollen die Verwendung der Java-Klassen erleichtern. Warum verwenden Sie Integer.toHexString nicht? Was würde eine alternative Implementierung bringen, außer Redundanz? –

+0

@JBNizet Ich bin nicht gegen die Verwendung von 'Integer.toHexString()' - Zum Beispiel, werfen Sie einen Blick auf die Antwort, die @hotkey unten zur Verfügung gestellt. Kurz und direkt erreichbar von jedem Int. Ich kann wirklich alles benutzen, um meine Aufgabe zu erfüllen, aber ich habe nur nach etwas Kotlin-artigem gesucht, wenn es verfügbar ist. – milosmns

Antwort

18

Was Kotlin 1.0.6 kotlin-stdlib haben keine Funktionen für diese, und man hat die java.lang.* Klassen verwenden, um die Konvertierung zu tun:

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

Aber aktuelle Kotlin Quellen contain diese Funktion:

Scheinbar wird es wahrscheinlich der Kotlin 1.1 stdlib zusammen mit vielen anderen hinzugefügt, einschließlich denen für die Analyse von Zahlen mit benutzerdefinierten Radix (obwohl keine Funktionen speziell für hex). Dann werden Sie in der Lage sein, es so nennen eine hexadezimale Zeichenfolge zu erhalten:

myInt.toString(16) 

Beachten Sie jedoch, dass dies noch anders von Integer.toHexString() sein wird, weil dieser die unsigned Umwandlung ausführt:

println((-50).toString(16)) // -32 
println(Integer.toHexString(-50)) // ffffffce 
+0

Guter Punkt über die unsignierte Konvertierung. – milosmns

Verwandte Themen