A › 6 - Variables 2 : texte et caractères

Les variables peuvent avoir d'autres types que numériques ou booléens. Par exemple les caractères (lettres, chiffres et symboles) et les chaînes de caractères (mots, phrases, textes...) peuvent être mémorisés à l'aide de variables.

La déclararation de ces variables respecte la syntaxe déjà rencontrée typeDeLaVariable nomDeLaVariable; mais l'affectation dépend du type de la variable.

Caractère

Les caractères sont de type char. Ils sont codés sur 2 octets.

Les caractères regroupent les lettres (majuscules et minuscules), les chiffres, les symboles ( comme &, §, @, <, +, etc.) ainsi que des caractères spéciaux.

L'affectation d'une variable de type char se fait par la syntaxe nomDeLaVariable='caractère'.

Par exemple :

char symbole='z'; // on déclare la variable symbole et on lui affecte le caractère 'z'. Les guillements qui entourent le caractère sont des guillemets simples, c'est à dire des apostrohes.

char monnaie = '€';

Les caractères sont naturellement associés à des entiers par l'intermédiaire d'une table de codage des caractères. Le format est celui d'Unicode. C'est quoi ?.

Par exemple le caractère 'A' est associé à 65 et 'Z' est associé à 90.

Comment accéder à ces valeurs ?

Un exemple :

char symbole='z'; // on déclare la variable symbole et on lui affecte le caractère 'z'.

int code = symbole; // la variable code contient l'entier associé à 'z' (minuscule), c'est à dire 122.

Une autre façon d'obtenir le même résultat, en une seule ligne :

int code ='z'; // affecte 122 à la variable code

Chaîne de caractères

Les chaînes de caractères sont de type String. Elles contiennent tous types de caractères : lettres, chiffres, symboles, ponctuation, espaces. L'affectation d'une variable de type String se fait par la syntaxe nomDeLaVariable = "texte". Les guillements qui entourent le texte sont des guillemets doubles.

Par exemple :

String arrivee = "Le train n°80456 arrivera en gare de Marseille à 12h54";

Affichage dans la console

La console est la petite fenêtre sur fond noir située sous la fenêtre d'édition des programmes.

Les instructions print et println permettent d'y afficher des messages, la seconde instruction ajoutant à l'affichage un "passage à la ligne".

Les messages peuvent être du texte, des variables numériques, booléennes, des caractères ou des chaînes de caractères.

Outil de débuggage d'un programme, l'affichage dans la console permet de suivre l'évolution de la valeur de variables pas à pas.

print("mon message"); // affiche le texte "mon message"

String texte="mon message";

println("texte"); // affiche le mot "texte", et passe à la ligne

print(texte); // affiche le contenu de la variable nommée texte

int alpha=23;

int beta=45;

print(alpha + beta); // affiche la somme des valeurs de alpha et beta

int horsTaxe=23;

float tva=1.196;

print("prix TTC : " + horsTaxe*tva); // le + permet ici d'afficher "côte à côte" (on dit "concaténer") un texte et le résultat d'un calcul

Caractères successifs

Si nomDeVariable est de type char, l'instruction nomDeVariable ++ permet de déterminer le caractère "suivant" le caractère affecté dans nomDeVariable ("suivant" selon Unicode).

Par exemple :

char lettre='a';

lettre++;

print(lettre); // affiche 'b' dans la console.

Longueur et caractères d'une chaîne

Si nomDeVariable est de type String, l'instruction nomDeVariable.length() permet de déterminer le nombre de caractères composant la chaîne nomDeVariable. Tous les caractères sont pris en compte, ponctuation et espaces compris.

Par exemple :

String message ="C'est vrai !";

int longueur = message.length();

print(longueur); // affiche 12 dans la console.

On peut accéder à chacun des caractères composant une chaîne nommée nomDeVariable grâce à l'instruction nomDeVariable.charAt(position) où position est un entier compris entre 0, pour désigner le premier caractère, et la longueur de la chaîne moins 1, pour désigner le dernier caractère.

Par exemple :

String message ="C'est vrai !";

char debut = message.charAt(0);

char interieur = message.charAt(4);

char fin = message.charAt(11);

print(debut+" "+interieur+" "+fin); // affiche "C t !" dans la console.