226 votes

Comment convertir une chaîne en Long en Kotlin ?

Donc, en raison du manque de méthodes telles que Long.valueOf(String s) je suis bloqué.

Comment convertir un String en Long en Kotlin?

1voto

nxhoaf Points 541

En fait, il existe plusieurs façons :

Supposons :

var numberString : String = "numberString" 
// le nombre est la valeur Long de numberString (le cas échéant)
var defaultValue : Long    = defaultValue

Alors nous avons :

+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString est un nombre valide ?           |  true    | false                 |
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString.toLong()                       |  nombre  | NumberFormatException |
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString.toLongOrNull()                 |  nombre  | null                  |
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString.toLongOrNull() ?: defaultValue |  nombre  | defaultValue          |
+—————————————————————————————————————————————+——————————+———————————————————————+

0voto

Mahozad Points 1573

Voici plusieurs façons de le faire:

// Lance une exception si le nombre a un mauvais format
val result1 = "5678".toLong()

// Sera nul si le nombre a un mauvais format
val result2 = "5678".toLongOrNull()

// Sera la valeur par défaut donnée si le nombre a un mauvais format
val result3 = "5678"
    .toLongOrNull()
    ?: -1L // La valeur par défaut

// Sera le retour du bloc run si le nombre a un mauvais format
val result4 = "5678"
    .toIntOrNull()
    ?: run {
        // ...
        // retourner un Long
    }

// Ignore tout caractère autre que des chiffres dans la chaîne
val result5 = "56abc78"
    .filter { it.isDigit() }
    .joinToString(separator="")
    .toLongOrNull()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X