Comment convertir une chaîne (String) en nombre (Long) en Kotlin ? Méthodes sûres et gestion des erreurs
Bonjour, collègues ! Je viens de commencer à apprendre Kotlin (je suis passé de Java) et j'ai rencontré une tâche apparemment simple. Je dois lire l'ID d'un utilisateur depuis un champ de texte dans l'application (c'est une String) et le passer à une fonction qui attend un Long.
En Java, j'utilisais généralement `Long.parseLong(str)` ou `Long.valueOf(str)`, en les enveloppant dans un try-catch. Mais en Kotlin, je vois plusieurs méthodes différentes : `.toLong()`, `.toLongOrNull()`, des fonctions d'extension... Et je suis confus quant à laquelle est correcte et sûre.
Voici un exemple de mon code qui plante actuellement avec une exception :
```kotlin
fun main() {
val userInput: String = "123abc" // l'utilisateur a accidentellement saisi des lettres
val userId: Long = userInput.toLong() // NumberFormatException !
println("User ID: $userId")
}
```
Je comprends qu'il faut gérer les erreurs, mais je veux le faire de manière élégante, dans le « style Kotlin ». De plus, que faire si la chaîne peut être `null` ? Ou contenir des espaces ? Existe-t-il une méthode universelle qui ne lève pas d'exception ?
No answers yet.
Connectez-vous pour laisser une réponse
Blogs