Documente Academic
Documente Profesional
Documente Cultură
: Sami GHARBI
Chapitre 2:
Les tableaux et
les chaines de caractres
I. Les tableaux
1. Dfinir un tableau:
premire mthode
char [] tableau;
On dclare une rfrence vers un tableau de caractres. Nanmoins, aucun espace mmoire n'est allou.
char tableau[];
Pour allouer l'espace mmoire on utilisera la mme syntaxe que celle des objets, en prcisant le nombre
de cases du tableau:
tableau=new char[7];
Comme en C la numrotation des cases commence par 0. Do la dernire case aura l'indice gal la taille
du tableau -1 (dans notre exemple 6).
Soit l'exemple suivant:
class TestTableau{
public static void main(String args[]){
char []tableau;
tableau=new char[4];
tableau[0]='j';
tableau[3]='a';
tableau[2]='v';
tableau[1]='a';
System.out.println(tableau);
}
}
On aura l'excution:
java
Explications:
char []tableau;: cre une rfrence vers un tableau de caractres.
tableau=new char[4];: allocation de la mmoire pour 4 caractres rfrencs par la variable
tableau. Toute les cases du tableau contiennent le caractre de valeur nulle ( '\0' ).
System.out.println(tableau);:cette instruction permet d'afficher les lments d'un tableau.
Page 1
2. Longueur
On peut connatre l'excution la taille d'un tableau. Si la rfrence tab dsigne un tableau, on
pourra crire:
tab.length
En quelque sorte length est un attribut du tableau. Cet attribut est en lecture seule: on ne peut pas
le modifier.
3. Tableaux plusieurs dimensions
Il est possible de crer des tableaux 1, 2, n dimensions. Soit la dclaration suivante:
int tableau[][]=new int[6][8];
Permet de crer un tableau deux dimensions: Matrice. Elle contient 6 lignes et 8 colonnes. De mme
pour les autres dimensions.
Il est encore possible en java de crer un tableau de diffrentes dimensions. Soit la dclaration suivante:
int tableau[][]=new int[3][];
Remarquez que la deuxime taille n'est pas prcise.
tableau[0]=new int[4];
tableau[1]=new int[2];
tableau[2]=new int[5];
Le tableau est form par 3 lignes. La 1re ligne contient 4 colonnes, la 2me contient 2 colonnes et la
3me contient 5 colonnes. Ce qui donne le tableau suivant initialis des 0:
Il est possible de concatner une chane avec un autre type de donnes : Nombre: entier ou rel,
Caractre, Boolen, Objet.
2. Crer et utiliser des objets de la classe String
Le programme suivant illustre lutilisation dun objet de type String :
public class MaChaine
{public static void main(String args[])
{String ch1=new String(Bonjour);
System.out.println(ch1);
String ch2=Tout le Monde;
System.out.println(ch2);
String ch3=ch1+ch2;
System.out.println(ch3);
}
}
On aura lcran :
Bonjour
Tout le Monde
BonjourTout le Monde
3. Mthodes usuelles : taille et extraction
a. Taille dune chaine de caractre
Pour connatre la taille dun chaine de caractre, on utilise la mthode length() qui retourne le
nombre de caractres dun objet de type String :
Les deux critures suivantes sont quivalentes:
System.out.println(Bonjour.length()) ;
Ou
s=Bonjour;
System.out.println(s.length()) ;
Et donnent le mme rsultat lcran :
s="Bonjour";
char c=s.charAt(0);
System.out.println(c) ;
Affiche lcran
B
c. Extraction dune sous-chaine
Deux mthodes substring retournent une nouvelle chane:
substring(int pos): Renvoie une nouvelle chaine forme par tous les caractres dune
autre chaine partir dune position pos jusqu' la fin de la chaine.
Exemple
String s1="Bonjour";
String s2=s1.substring(1,3);
System.out.println(s2);
s2=s1.substring(4);
System.out.println(s2);
Affiche lcran:
on
our
4. Comparer les chanes de caractres
Pour comparer 2 chaines on utilise la fonction equals de la classe String. La comparaison avec
loprateur == permet de vrifier est ce que les deux chanes rfrencient le mme objet :
String s1=new String("Bonjour");
System.out.println(s1.equals("Bonjour"));
System.out.println(s1=="Bonjour");
Affiche lcran
true
false
Page 4
Il est possible de faire une comparaison sans tenir compte de la casse (majuscule et minuscule):
System.out.println(s1.equalsIgnoreCase("bonjour"));
Affiche lcran
true
5. Comparer deux chanes: ordre
Exemple:
String ch=new String("bonjour");
int l=ch.length();
System.out.println(ch.compareTo("lundi"));
Affiche l'cran -10 Puisque "bonjour" est avant "lundi" dans l'ordre lexicographique.
6. Chercher une chane dans une autre
Deux mthodes sont proposes pour la recherche:
indexOf(String
s) ou
indexOf(char
c):
lastIndexOf
(String
s) ou
lastIndexOf(char
c):
permet de chercher la
Exemple
String s="189";
int a=Integer.parseInt(s);
String float
String s="18.78";
float a=Float.parseInt(s);
String double
String s="23.5";
double a=Double.parseInt(s);
String boolean
String s="true";
boolean a=Boolean.parseInt(s);
Insrer un lment de type simple dans la chaine une certaine position : insert(int
position, char c)
Supprimer des caractres: delete(int debut,int fin) pour supprimer des caractres de
la position de dbut jusqu' fin-1.
Page 6
}
}
Page 7
Page 8