INF1563 Programmation I


Traitement de chaînes de caractères



Particularités de la classe String

Séquences d'échappement, Unicode

SéquenceSignification
\t tabulation
\n nouvelle ligne
\r retour de chariot
\" guillement
\' apostrophe
\\ backslash
\u???? code Unicode

Tous les caratères en Java sont codés en Unicode et ils ont une valeur comprise entre 0 et 65535. Pour insérer un caractère quelconque dont le numéro Unicode est connu, on utilise la séquence d'échappement \u suivi du numéro du caractère en hexadécimal sur quatre chiffres.

Exemple :

System.out.println("Micha\u0322");

Résultats :

Michał

Création d'un objet String

Méthode toString

Exemple :

import java.util.Date;
import java.awt.*;
public class Exemple {

  public static void main(String[] args) {
    Date d = new Date();
    System.out.println(d);  // toString redéfinie dans la classe Date
    Frame f = new Frame();
    System.out.println(f);  // toString redéfinie dans une classe parent de Frame
    Exemple e = new Exemple();
    System.out.println(e);  // on utilise Object.toString()
  }
}

Résultats :

Fri Aug 07 14:37:03 EDT 2009
java.awt.Frame[frame0,0,0,0x0,invalid,hidden,layout=java.awt.BorderLayout,title=,resizable,normal]
Exemple@173a10f

Méthode valueOf

Exemple :

String annee = String.valueOf(2009);
System.out.println("L'année " + annee + " s'écrit MMIX en chiffres romains.");
System.out.println("L'année " + 2009 + " s'écrit MMIX en chiffres romains.");

Résultats :

L'année 2009 s'écrit MMIX en chiffres romains.
L'année 2009 s'écrit MMIX en chiffres romains.

Les String sont immuables

Attention : la classe String est immuable, la chaine originale n'est jamais modifiée.

Exemple :

String s1 = "ABc";
String s2 = s1.toLowerCase();
System.out.println(s1);
System.out.println(s2);

Résultats :

ABc
abc

Quelques méthodes de la classe String

Informations sur l'état d'un String
length() retourne la longueur de la chaîne
charAt(i) retourne le ie caractère de la chaîne; i doit être entre 0 et length() - 1
equals(String) indique si l'objet est égal à l'argument
compareTo(String) retourne 0 si si l'objet est égal à l'argument, un nombre négatif s'il est plus petit dans l'ordre lexicographique et un nombre positif s'il est plus grand
Opérations qui créent une nouvelle chaîne
toLowerCase() change toutes les lettres en minuscules
trim() supprime tous les caractères blancs (espace, tabulation, saut de ligne) se trouvant au début et à la fin de la chaine
replace(char c1, char c2) remplace tous les caractères c1 par c2
replace(String s1, String s2) remplace toutes les chaînes s1 par s2
substring(int debut, int fin) extrait une sous-chaîne qui commence à l'indice debut et qui se termine à l'indice fin - 1