Szukam podobnej funkcji do Javy Integer.toHexString()
w Kotlin. Czy jest coś wbudowanego, lub musimy ręcznie napisać funkcję, aby przekonwertować Int
na String
?Jak przekonwertować Int na string szesnastkowy w Kotlin?
Odpowiedz
chodzi o Kotlin 1.0.6 kotlin-stdlib
nie posiada funkcje do tego i trzeba użyć java.lang.*
klas zrobić konwersję:
val hexString = java.lang.Integer.toHexString(i)
ale obecne źródła Kotlin contain Ta funkcja:
@SinceKotlin("1.1")
@kotlin.internal.InlineOnly
public inline fun Int.toString(radix: Int): String =
java.lang.Integer.toString(this, checkRadix(radix))
Pozornie najprawdopodobniej zostanie dodana do strunnika Kotlin 1.1 wraz z wieloma innymi, w tym do przetwarzania liczb z niestandardową podstawką (choć nie ma specjalnych funkcji dla heksadecymalnych). Wtedy będzie można nazwać go tak, aby ciąg szesnastkowy:
myInt.toString(16)
jednak pamiętać, że będzie to jeszcze inaczej z Integer.toHexString()
, ponieważ ten ostatni wykonuje niepodpisane konwersji:
println((-50).toString(16)) // -32
println(Integer.toHexString(-50)) // ffffffce
Dobra uwaga o niepodpisanej konwersji. – milosmns
Uwaga: zdaję sobie sprawę, że mogę używać klasy 'Integer' z Javy :) Szukam czystej metody Kotlin, jeśli jest dostępna. – milosmns
Większość biblioteki kotlin polega po prostu na udostępnianiu metod rozszerzenia na standardowych klasach Java. Język i biblioteka zostały zaprojektowane tak, aby ułatwić korzystanie z klas Java. Dlaczego nie używasz Integer.toHexString? Co przyniesie wdrożenie alternatywne, z wyjątkiem nadmiarowości? –
@JBNizet Nie jestem przeciwko używaniu 'Integer.toHexString()' - Na przykład spójrz na odpowiedź, której @hotkey podano poniżej. Krótki i bezpośrednio dostępny z dowolnego Int. Mogę użyć czegokolwiek, by ukończyć moje zadanie, ale szukałem czegoś podobnego do Kotlina, jeśli to możliwe. – milosmns