Rechercher dans une chaîne de caractères

La méthode "indexOf" de la classe String retourne la position de la première occurence d'un caractère donné ou -1 si le caractère n'est pas trouvé.

Dans l'exemple suivant, on cherche successivement la position des caractères 'g' et 'h' :

String chaine = "Un anneau pour les gouverner tous.";
int pos = chaine.indexOf('g');
System.out.println(pos);

// la méthode retournera -1 si le caractère est introuvable
pos = chaine.indexOf('h');
System.out.println(pos);

Sortie :

C:\>java Exemple
19
-1

C:\>

On peut aussi indiquer à partir de quelle position débute la recherche :

String chaine = "Un anneau pour les gouverner tous.";
int pos = chaine.indexOf('a');
System.out.println(pos);

// recherche débutant à la position 4
pos = chaine.indexOf('a', 4);
System.out.println(pos);

Sortie :

C:\>java Exemple
3
7

C:\>

Rechercher une chaîne dans une chaîne

Il existe aussi une version de la méthode "indexOf" qui permet de rechercher une chaîne (String) dans une autre chaîne :

String chaine = "Un anneau pour les gouverner tous.";
int pos = chaine.indexOf("ou");
System.out.println(pos);

// recherche débutant à la position 15
pos = chaine.indexOf("ou", 15);
System.out.println(pos);

Sortie :

C:\>java Exemple
11
20

C:\>

Il existe enfin une méthode "lastIndexOf" qui fait le même travail que "indexOf", mais en commençant par la fin de la chaîne et en reculant.