next up previous contents index
Next: Clonage d'objets Up: Objets Previous: Généricité

    
Chaînes de caractères

     

Les chaînes de caractères (appelées en anglais strings), sont des objets importants en programmation, intervenant dans les entrées-sorties et plus généralement dans la manipulation de fichiers textuels. Une chaîne littérale est une suite de caractères entourée par des apostrophes doubles << " >> (en anglais double quotes), comme par exemple "Knuth" ; sa longueur est le nombre de caractères figurant entre les apostrophes, 5 pour "Knuth". La chaîne vide est "", de longueur zéro.


En Java, les chaînes sont représentés par des objets de type String. Ce sont des objets de ce type qui sont construits par le compilateur quand il rencontre une chaîne littérale dans le programme source. Ces chaînes littérales peuvent servir à initialiser un champ ou une variable locale de type String :

   String s1 = "une chaîne de caractères";
   String s2 = "ceci est " + s1;

L'opérateur << + >> permet de concaténer les chaînes. La longueur d'une chaîne est obtenue par la méthode length() , qui retourne un int. Chacun des caractères peut être obtenu par la méthode charAt(int), le premier caractère d'une chaîne non vide s étant s.charAt(0). D'autres fonctions et méthodes utiles sont disponibles (extraction d'une sous-chaîne, traduction en majuscules, recherche de sous-chaîne, etc). Voici un exemple de ces méthodes :

   String s1 = "une chaîne";
   char c = s1.charAt(1);              // c = 'n'
   String s2 = s1.substring(4, 10);    // s2 = "chaîne"
   String s3 = s1.toUpperCase();       // s3 = "UNE CHAÎNE"
   int n1 = s1.indexOf("ne");          // n1  = 1
   int n2 = s1.lastIndexOf("ne");      // n2  = 8

La classe String définit également des fonctions de nom valueOf qui réalisent la conversion des données de type primitif en String : ainsi, String.valueOf(true) convertit le booléen true en la chaîne "true", et String.valueOf(12) convertit l'entier 12 en la chaîne "12".


Les objets de type String sont non-modifiables. La classe StringBuffer  permet la modification de la chaîne, par ajout et insertions de chaînes, ou par modification d'un caractère.


L'API de Java dispose d'une classe StringTokenizer, dans le paquet java.util qui permet de découper une chaîne en sous-chaînes séparées par des caractères délimiteurs. Cette classe a un constructeur à deux arguments : la chaîne à découper, et la chaîne des caractères délimiteurs. Par exemple,

import java.util.StringTokenizer;

class Token {
  public static void main(String[] args) {
    StringTokenizer st = 
      new StringTokenizer("/usr/local/java", "/");
    while (st.hasMoreTokens()) {
      System.out.println(st.nextToken());
    }
  }
}

imprime sur la sortie standard :

usr
local
java


next up previous contents index
Next: Clonage d'objets Up: Objets Previous: Généricité
R. Lalement
2000-10-23