2017-01-14 7 views
4

Я начинаю работать в Котлин, и мне нужно, чтобы разобрать шестнадцатеричная строка в длинной, что в Java может быть сделано сКотлин разбора Hex строки в Long

Long.parseLong("ED05265A", 16); 

Я не могу ничего найти это в Котлин , хотя я могу найти:

val i = "2".toLong() 

Это не то, что я ищу!

Прежде чем писать что-нибудь с нуля, есть встроенная функция для этого?

+1

Как насчет 'java.lang.Long.parseLong (" ED05265A ", 16)'? Или 'import java.lang.Long.parseLong [...] parseLong (" ED05265A ", 16)'? Kotlin совместим с Java, и вы можете и должны использовать встроенные классы и методы Java. –

+0

попробует сейчас –

+0

он работает, ответьте на вопрос, и я приму! –

ответ

5

Вы можете просто использовать

java.lang.Long.parseLong("ED05265A", 16) 

Или

import java.lang.Long.parseLong 

[...] 

parseLong("ED05265A", 16) 

Котлин совместим с Java, и вы можете и должны использовать встроенные классы и методы Java.

+0

При использовании Integer.parseInt ("ffff0000", 16), я получаю исключение: NumberFormatException: для строки ввода: "ffff0000". Как так? –

+0

Это больше, чем максимальное целочисленное значение. –

+0

Но на Java он отлично работает, и его легко читать, потому что в этом случае это представление цвета (красный цвет в этом случае). Предположим, что у меня есть гекса-десятичное значение, которое я использовал на Java, и что я должен установить его значение в Kotlin? Нужно ли мне вручную преобразовывать его самостоятельно? –

7

Это в Котлин v1.1 coming:

"ED05265A".toLong(radix = 16) 

До этого использовать в Java Long.parseLong.