CodeGym /Cours /JAVA 25 SELF /Conversion entre types de données

Conversion entre types de données

JAVA 25 SELF
Niveau 2, Leçon 3
Disponible

1. Pourquoi convertir les types ?

Java est un langage fortement typé. Si l’ordinateur a une « boîte » pour un nombre, alors essayer d’y mettre du texte — c’est à peu près comme tenter d’enfoncer une fourchette dans un port USB. Le compilateur ne vous le pardonnera pas ! 😡

Cependant, dans la pratique, nous travaillons souvent simultanément avec différents types de données. Par exemple, vous avez une chaîne qui contient un nombre. C’est là qu’entre en jeu la conversion (ou transformation) des types.

Voyons un exemple. Supposons que vous vouliez stocker le nombre d’utilisateurs :

int a = 1;
int b = "2";
int c = "trois";

Le compilateur dira aussitôt : « Tu me prends pour qui ? Je ne sais pas convertir automatiquement une chaîne en nombre — pas sans toi. Il faut convertir la chaîne en nombre explicitement. »

En Java, il existe plusieurs manières de convertir, chacune avec ses avantages, ses inconvénients et ses pièges classiques.

2. Convertir int en String

Dans notre travail, on a souvent besoin d’obtenir une représentation textuelle d’un nombre : par exemple pour l’afficher, l’enregistrer dans un fichier, l’envoyer sur le réseau, l’unir à du texte, etc. En Java, plusieurs méthodes existent, chacune étant pratique selon la situation.

Fonction String.valueOf()

C’est la méthode principale et la plus répandue :

int number = 42;
String str = String.valueOf(number);  // str == "42"

String.valueOf() convertit un nombre en une chaîne qui correspond au type de l’objet passé en argument.

Concaténation avec une chaîne vide

Une méthode ancienne mais efficace :

int number = 42;
String str = "" + number;

Cette approche est rapide pour les cas simples, mais elle est moins explicite pour la personne qui lit le code.

3. Conversion implicite en chaîne

Comme déjà mentionné, les concepteurs de Java ont fait en sorte que toutes les variables, objets et expressions en Java puissent être convertis en type String.

De plus, cela se produit automatiquement lorsqu’on concatène un String avec un autre type. Exemples :

int a = 5;
String name = "Anya" + a;            //  name contient la chaîne Anya5

int a = 5;
String city = a + "New York" + a;   //  city contient la chaîne 5New York5

int number = 10;
String code = "Yo";
String message = "Hello! " + number + code; //  message contient la chaîne Hello! 10Yo

Dans ces trois exemples, nous avons librement combiné des variables de type int et String, et le résultat était toujours de type String.

Important ! On ne peut pas effectuer d’opérations arithmétiques avec le type String, même si la chaîne ne contient que des chiffres.

Exemples :

int a = 5;
String name = "1" + a;              //  name contient la chaîne 15

int a = 5;
String city = a + "9" + a;          //  city contient la chaîne 595

int number = 10;
String code = "10";
String message = "" + number + code; // message contient la chaîne 1010 

L’opération « + » s’évalue de gauche à droite, le résultat peut donc être quelque peu inattendu. Exemple :

int a = 5;
String name = a + a + "1" + a;      // name contient la chaîne 1015

Ordre d’exécution : ((a + a) + "1") + a

4. Conversion d’une chaîne en nombre

Pour convertir un nombre en chaîne en Java, il suffit de le concaténer avec une chaîne vide :

String str = "" + number;

Que faire s’il faut convertir une chaîne en nombre ? On ne peut pas convertir n’importe quelle chaîne en nombre. Mais si la chaîne ne contient que des chiffres, alors on peut. Pour cela, en Java, il existe une fonction spéciale.

La commande ressemble à ceci :


int x = Integer.parseInt(string);
Conversion d’une chaîne en nombre

Où int x est la déclaration d’une variable entière x, et string est un nombre donné sous forme de chaîne (une chaîne composée de chiffres).

Exemples :

String str = "123";
int number1 = Integer.parseInt(str);        //  number1 contient le nombre 123;

int number2 = Integer.parseInt("321");      //  number2 contient le nombre 321

int number3 = Integer.parseInt("321" + 0);  //  number3 contient le nombre 3210

int number4 = "321"; //  Ne se compile pas : variable de type int, mais valeur de type String

Cela fonctionne aussi pour les valeurs négatives : la fonction Integer.parseInt() est très futée.

1
Mission
JAVA 25 SELF, niveau 2, leçon 3
Bloqué
Code d'accès 🔑
Code d'accès 🔑
1
Mission
JAVA 25 SELF, niveau 2, leçon 3
Bloqué
Numéro du vol ✈️
Numéro du vol ✈️
1
Mission
JAVA 25 SELF, niveau 2, leçon 3
Bloqué
Année de sortie du film 🎞️
Année de sortie du film 🎞️
1
Mission
JAVA 25 SELF, niveau 2, leçon 3
Bloqué
Somme des scores du jeu 🕹️
Somme des scores du jeu 🕹️
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION