Contenu du cours
Notions de Base de Java
Notions de Base de Java
Opérations Mathématiques sur Char
Pourquoi les opérations mathématiques sont-elles possibles sur le type char?
Le type de données char
est assez intéressant. Il stocke des caractères, mais vous pouvez également effectuer des opérations sur ce type de données.
Quel sera le résultat de l'exécution de ce code?
Main
package com.example; public class Main { public static void main(String[] args) { char firstLetter = 'A'; char secondLetter = '('; // We use type casting here to convert value from `int` to `char` char result = (char) (firstLetter + secondLetter); System.out.println(result); } }
On pourrait penser que le résultat serait A(
, mais comme nous pouvons le voir, le résultat est i
. Pourquoi cela ? char
n'est pas purement un type de données de caractère ; il prend des caractères de la table ASCII. Le caractère A
correspond au nombre 65 dans la table, tandis que le caractère (
correspond au nombre 40. Comme vous l'avez peut-être deviné, le caractère i
correspond à 105, car 65 + 40 = 105.
Il est important de savoir cela car cela nous permet d'opérer sur le type de données char
de manière excellente et flexible.
Voici un lien vers la table ASCII.
Conversion
Dans le code ci-dessus, vous avez peut-être remarqué cette syntaxe inhabituelle :
Mais pourquoi (char)
est-il nécessaire ? L'opération d'addition renvoie un résultat de type int
car elle additionne les codes numériques des caractères. Pour stocker ce résultat dans une variable de type char
, une conversion explicite est nécessaire. C'est exactement ce que fait la construction (char)
—elle convertit la valeur numérique en un caractère.
Dans notre exemple, le résultat de l'addition est le nombre 105. La construction (char)
convertit ce nombre en le caractère correspondant au code 105 dans la table ASCII, qui se trouve être le caractère i
.
Merci pour vos commentaires !