5.10 Parsing value
Dans cette vidéo, nous allons voir comment convertir une chaîne de caractères en un autre type de données comme int en Java. J'ai créé un nouveau projet, et je déclare une variable String numberAsString = "2021";. Comme la valeur est entre guillemets, il s'agit bien d'une chaîne et non d'un nombre. En exécutant le programme, on voit que numberAsString vaut bien 2021, mais sous forme de texte.
Convertir un String en int avec Integer.parseInt
Pour transformer cette chaîne en nombre entier, Java fournit la méthode Integer.parseInt. On écrit :
int number = Integer.parseInt(numberAsString);
System.out.println("number = " + number);
Au lancement, on obtient bien number = 2021. Voyons maintenant ce qui se passe quand on ajoute 1 aux deux variables. Si on écrit numberAsString += 1;, Java convertit automatiquement l'entier 1 en chaîne et concatène les deux : la variable String contiendra alors « 20211 », ce qui n'est pas le résultat attendu. En revanche, number += 1; incrémente l'entier de 1, donc number vaudra 2022.
En affichant les deux variables après l'opération, on confirme que la chaîne a été concaténée tandis que l'entier a été correctement incrémenté. Attention : si la chaîne contient une lettre ou un caractère spécial, Integer.parseInt lèvera une erreur car la conversion n'est possible que pour des caractères numériques. C'était tout pour cette vidéo, à la prochaine !
En résumé
Cette leçon explique comment convertir une chaîne de caractères en nombre entier en Java. À travers un exemple simple, vous découvrirez la méthode Integer.parseInt() qui transforme un String en int. La leçon illustre aussi la différence critique entre la concaténation de chaînes et l'addition numérique, et montre les limitations du parsing quand la chaîne contient des caractères non-numériques.
Points clés
- Utilisez Integer.parseInt() pour convertir une String en int
- Additionner 1 à une String entraîne une concaténation : "2021" + 1 = "20211"
- Additionner 1 à un int entraîne une incrémentation : 2021 + 1 = 2022
- Integer.parseInt() échoue si la chaîne contient des lettres ou caractères spéciaux
- Java distingue clairement entre une valeur numérique (int) et sa représentation textuelle (String)
Questions fréquentes
Comment convertir une chaîne en nombre entier en Java ?
Utilisez la méthode Integer.parseInt(). Exemple : int nombre = Integer.parseInt("2021");
Pourquoi "2021" + 1 donne "20211" et pas 2022 ?
Parce que "2021" est une String, le + concatène donc "2021" avec "1" pour donner "20211". Pour obtenir 2022, convertissez d'abord en int avec Integer.parseInt().
Que se passe-t-il si on essaie de parser une lettre avec Integer.parseInt() ?
Une exception est levée car Integer.parseInt() ne peut convertir que des chaînes numériques valides.