2017-01-14 2 views
4

Je commence à travailler dans Kotlin et je dois analyser une chaîne hexagonale à une longue, qui en java peut être fait avecKotlin Parse Hex chaîne à long

Long.parseLong("ED05265A", 16); 

Je ne trouve rien cela dans Kotlin , bien que je puisse trouver

val i = "2".toLong() 

Ce n'est pas ce que je cherche!

avant d'écrire quelque chose à partir de zéro est-il une fonction intégrée pour cela?

+1

Que diriez-vous de 'java.lang.Long.parseLong (" ED05265A ", 16)'? Ou 'import java.lang.Long.parseLong [...] parseLong (" ED05265A ", 16)'? Kotlin est compatible avec Java, et vous pouvez, et devriez, utiliser les classes et méthodes intégrées de Java. –

+0

vais l'essayer maintenant –

+0

cela fonctionne, répondez à la question et je vais accepter! –

Répondre

5

Vous pouvez simplement utiliser

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

Ou

import java.lang.Long.parseLong 

[...] 

parseLong("ED05265A", 16) 

Kotlin est compatible avec Java, et vous pouvez, et devez utiliser les classes et méthodes intégrées de Java.

+0

Lorsque vous utilisez Integer.parseInt ("ffff0000", 16), j'obtiens une exception: NumberFormatException: Pour la chaîne d'entrée: "ffff0000". Comment venir? –

+0

Il est plus grand que la valeur entière maximale. –

+0

Mais sur Java cela fonctionne bien, et est facile à lire car dans ce cas c'est une représentation d'une couleur (couleur rouge dans ce cas). Supposons que j'ai une valeur hexa-décimale que j'ai utilisée correctement en Java, que dois-je définir sa valeur dans Kotlin? Dois-je vraiment le convertir manuellement? –

7

Ceci est coming dans Kotlin V1.1:

"ED05265A".toLong(radix = 16) 

Jusque-là utiliser Long.parseLong de Java.