Caractères et chaînes de caractères

Type caractère

images/whitebelt.png

Le jeu de caractère utilisé par Java est basé sur le standard UNICODE. voir "http://www.unicode.org/charts/". Il permet d’avoir des caractères portables entre plateformes.

Plus précisément les caractères sont codés avec le système UTF-16: Les 32 bits des caractères UNICODE sont codés sur 16 bits (on utilise alors 2 x deux octets pour représenter les caractères dont le code est supérieur à 0xD7FF).

Déclarations de caractère et formes littérales. 

char unA = 'A' ;
char unTab = '\t' ;
char unNewLine = '\n' ;
//échappement
char ap = '\''
char euro = '\u20AC' ; // valeur Unicode en hexadecimal

Non seulement les caractères UNICODE vous permettront d’accéder à des alphabets nationaux particuliers mais vous trouverez là le moyen de représenter des symboles divers … et des Emojis!

Chaînes de caractères (String)

images/whitebelt.png

Bien que le type String soit un objet composite (et non un type primitif scalaire) il a des valeurs littérales et des notations proches de celle utilisées pour les caractères.

Le type String représente une suite de caractères: cette séquence est immuable (on ne peut pas modifier une chaîne de caractères!).

Déclaration de chaîne, littéraux, opération de concaténation. 

String nom = "Edmond" ;
//noter l'échappement du caractère "
String menuItem = "sauté de grenouilles \"à c\u0153ur\" 10 \u20AC" ;
// sauté de grenouilles à 10 Euros : pas cher!

L’opérateur + appliqué à des chaînes de caractères réalise une concaténation (assemblage de chaînes ou assemblage de chaîne avec d’autres valeurs).

String nomComplet = nom + " Dantès" ; // concatenation
int ix = 3 ;
"valeur " + ix + 3 ; // imprime 33!
"valeur " + (ix + 3)  ; // imprime 6

Attention!:

  • Bien que l’opérateur == entre chaînes soit toléré il ne permet pas de tester l'égalité. Il faut écrire des codes comme:

    nomComplet.equals("Edmond Dantès");
    "Trafalmadore".equals(nomPlanète);
  • On ne peut réaliser un tri alphabétique en se basant sur les codes des caractères composant la chaîne (par ex. faut-il distinguer les caractères é, e, ê … etc?). Il faut utiliser les mécanismes du code java.text.Collator

--exercices-- manipulez des chaînes de caractères et des concaténations de chaînes avec des valeurs numériques. (pour vous amuser cherchez à utiliser des émojis en utilisant leur code UNICODE). --plus un exercice de compatibilité entre types--