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?
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?
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 |
+—————————————————————————————————————————————+——————————+———————————————————————+
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 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.