Vous êtes sur la page 1sur 6

Chapitre 5

Les chaînes de
caractères

1
Les chaînes de caractères
1 - Introduction
Déclaration : Bonjour
String ch;
ch="Bonjour"; ch
On aboutit à cette situation
2 – Manipulation des références :

String ch,ch1,ch2; ch1 Bonjour


ch1="Bonjour";
ch2="Bonsoir"; ch2 Bonsoir

Bonjour
ch1
ch=ch1;ch1=ch2;ch2=ch; ch2 Bonsoir

3 – Longueur d'une chaîne : length( )


String ch="Bonjour";
int n=ch.length(); //n contient 7
ch="Hello";
n=ch.length(); //n contient 5
ch="";
n=ch.length(); //n contient 0

 length pour les tableaux désigne un champ ;


 length( ) pour les chaînes de caractères désigne une méthode.

4 – Accès aux caractères d'une chaîne : charAt( )


String ch="Bonjour";
char ch1;
ch1=ch.charAt(0); //ch1 contient le caractère 'b'
//le premier caractère porte le rang 0
ch1=ch.charAt(2); //ch1 contient le caractère 'n'
Exercice d'application
Ecrire un programme qui lit une chaîne de caractère au clavier et l'affiche verticalement.
Exp : Java
J
a
v
a

5 – Concaténation de chaînes :
La concaténation de chaîne se fait par l'opérateur +.
String ch1="Le langage";
String ch2=" Java";
String ch3=ch1+ch2; //ch3 contient la chaîne "Le langage Java"
ch3=ch1+" C++"; //ch3 contient la chaîne "Le langage C++"
Exemple 2
int n=26;
String prix=new String("prix : ");
String monnaie="DH";
String resul=prix+n+monnaie;
System.out.println(resul);
Ce programme affiche :
prix : 26DH

Exemple 3 :
2
String ch="Bonjour";
ch+="monsieur";//ch contient la chaîne "Bonjour monsieur"
Exemple 4 :
String ch="chiffres = ";
for(int i=0;i<=9;i++)
ch+=i;
System.out.print(ch);
Ce programme affiche :
chiffres = 0123456789

6 – Recherche dans une chaîne


La méthode indexOf( ) permet de fournir à partir du début d'une chaîne ou d'une position donnée.
 la position du caractère (ou début de la chaîne recherchée )
 la valeur -1 si le caractère ou la chaîne n'est pas trouvée .
Exemple :
String mot="anticonstitutionnellement";
int n=mot.indexOf('t'); //n=
n=mot.indexOf("ti"); //n=
n=mot.indexOf("ti",4); //n=
n=mot.indexOf('x'); //n=

La méthode lastIndexOf( ) effectue les mêmes recherches, mais en examinant la chaîne depuis sa fin.
Exemple
n=mot.lastIndexOf('t'); //n=24
n=mot.lastIndexOf("ti"); //n=12

Exercice d'application :
Ecrire un programme utilisant la méthode indexOf( ) pour compter le nombre de caractères 'e' présents dans
un mot entré au clavier.
Récrire le programme mais cette fois, on cherche le nombre d’apparition d'un mot dans une phrase.

7 – Comparaisons de chaînes
7 – 1 – La méthode equals( )
La méthode equals( ) compare le contenu de deux chaînes et retourne la valeur True ou False.
Exemple
String ch1="hello";
String ch2="bonjour";
ch1.equals(ch2); //cette expression est fausse
ch1.equals("hello");//cette expression est vraie

7 – 2 – La méthode equalsIgnoreCase( )
Cette méthode effectue la même comparaison que equals( ), mais sans distinguer les majuscules.
Exemple :
String ch1="hello";
String ch2="HeLlo";
ch1.equalsIgnoreCase(ch2); //cette expression est vraie
7 – 3 – La méthode compareTo( )
La méthode compareTo( ) s'utilise ainsi :
chaîne1.compareTo(chaîne2)
Elle fournit :
 un entier négative si chaîne1 arrive avant chaîne2
 un entier nul si chaîne1 et chaîne2 sont égales
 un entier positif si chaîne1 arrive après chaîne2

Chaîne1 Chaîne2 Chaîne1.compareTo(Chaîne2)

3
Bonjour Monsieur Négative
Bon Bonjour Négative
Paris2 Paris1 Positif

8 – Remplacement de caractères : méthode replace( )


String ch1="Bonjour";
String ch2=ch1.replace('o', 'a'); //ch2 contient Banjaur

9 – Extraction de sous-chaîne : méthode substring( )


 Extraction de tous les caractères depuis une position donnée
String ch1="anticonstitutionnellement";
String ch2=ch1.substring(5); //ch2 contient "onstitutionnellement"
 Extraction des caractères compris entre deux positions
String ch1="anticonstitutionnellement";
String ch2=ch1.substring(5,16); //ch2 contient "onstitution"

10 – Passage en majuscules ou en minuscules


toLowerCase( ): de majuscule ---------------------> minuscule
toUpperCase( ): de minuscule---------------------> majuscule
Exemple :
String ch1="LanGaGE";
String ch2=ch1.toLowerCase(); //ch2 contient "langage"
String ch3=ch1.toUpperCase(); //ch3 contient "LANGAGE"

11 – Tableaux de chaînes
String tab[]=new String[4]; //creeation d'un tableau de type String
//ou
String tab[]={"mot1","mot2","mot3","mot4"};
Exemple :
public class TstChaine {
public static void main(String[] args) {
String tab[]={"C","C++","Java","Fortran","Pascal","PHP"};
for(int i=0;i<tab.length;i++)
System.out.print(" "+tab[i]);
}
}

Exercice :
Ecrire un programme qui permet de classer les noms des élèves d'une classe selon l'ordre alphabétique.

12 – Conversions entre chaînes et types primitifs


12 – 1 – Conversion d'un type primitif en une chaîne
 utilisation de la méthode statique valueOf( )
int n=427;
String ch=String.valueOf(n); //ch contient la chaine "427"
 utilisation d'une chaîne vide
int n=427;
String ch=""+n; //ch contient la chaine "427"

12 – 2 – Conversion d'une chaîne en un type primitif


String ch="3587";
int ni=Integer.parseInt(ch);
//byte nb=Byte.parseByte(ch);
short nsh=Short.parseShort(ch);
long nlg=Long.parseLong(ch);
float nf=Float.parseFloat(ch);
double nd=Double.parseDouble(ch);

4
System.out.print(nd);

13 – Conversions entre chaînes et tableaux


On peut construire une chaîne à partir d'un tableau de caractères
char mot[]={'b','o','n','j','o','u','r'};
String ch1=new String(mot); //ch1 contient "bonjour"
String ch2=new String(mot,2,4); //ch2 contient "njou"

Exercices d'application :
1) Écrire un programme qui lit une chaîne au clavier et qui en affiche :
 un caractère sur deux (le premier étant affiché),
 le premier et le dernier caractère.

Exemple :
donnez une chaine : java est plus portable que C++
un caractere sur deux : jv s lspral u +
Premier caractere = j
Dernier caractere = +

2) Écrire un programme qui permet de vérifier si un mot est un verbe ou un nom.

3) Écrire un programme qui permet de saisir le nom et le prénom et affiche le nom et le premier
caractère du prénom en majuscule et le reste en miniscule.

4) Écrire un programme qui lit au clavier un verbe du premier groupe (il s’assurera qu’il est bien
terminé par er) et qui en affiche la conjuguaison au présent de l’indicatif. On supposera qu’il s’agit
d’un verbe régulier.Autrement dit, on admettra que l’utilisateur ne fournit pas un verbe tel que
manger (dans ce cas, le programme affichera nous mangons !). Les résultats se présenteront ainsi :
donnez un verbe regulier du premier groupe : dire
*** il ne se termine pas par er - donnez-en un autre : chanter
je chante
tu chantes
il/elle chante
nous chantons
vous chantez
ils/elles chantent

Vous aimerez peut-être aussi