next up previous contents index
suivant: 3.7 Classes enveloppantes des monter: 3. Classes d'objets précédent: 3.5 Surcharge   Table des matières   Index


3.6 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, membre du paquet java.lang. 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 conversions inverses sont réalisées par des fonctions des classes enveloppantes (voir § [*]).


3.6.0.0.1 Modifications

Les objejts de type String sont non-modifiables. La classe ava.lang.StringBuffer permet la modification de la chaîne, par ajout ou insertion de chaînes, suppression ou modification d'une sous-chaîne :

   StringBuffer sb = new StringBuffer("chaîne");
   sb.insert(0, "une ");           // "une chaîne"
   sb.append("tte");               // "une chaînette"
   sb.replace(7, 9, "rr");         // "une charrette"
   sb.deleteCharAt(2);             // "un charrette"
   String s = sb.toString();       // s = "un charrette"


next up previous contents index
suivant: 3.7 Classes enveloppantes des monter: 3. Classes d'objets précédent: 3.5 Surcharge   Table des matières   Index
Rene' LALEMENT 2001-11-07