Dans cette fiche... |
Difficulté : ![]() |
Résultat |
La méthode indexOf() permet de rechercher la position d'une chaîne dans une autre. En voici quelques exemples. |
|
// -------------------------------------------------- // CHERCHE : OPERATIONS SUR LES CHAINES DE CARACTERES // --------------------------------------------------
import java.applet.*; import java.awt.*;
public class Cherche extends Applet { String s1, s2;
public void init() { // Définir la couleur de fond de l'applet setBackground(Color.black);
s1 = "Loi de McGovern"; s2 = "Plus le titre est long, moins le poste est important."; }
// Affichage public void paint(Graphics g) { // Affichage de la chaîne s1 en jaune g.setColor(Color.yellow); g.drawString(s1, 10, 15);
// Affichage de la chaîne s2 en blanc g.setColor(Color.white); g.drawString(s2, 10, 30);
// Position du mot "le" dans s2 g.setColor(Color.orange); g.drawString("Le mot 'le' figure en position : " + s2.indexOf("le"), 10, 60);
// Position du mot "LE" dans s2 g.drawString("Le mot 'LE' figure en position : " + s2.indexOf("LE"), 10, 75);
// Position du mot "le", en partant du 10ème caractère de s2 g.drawString("Deuxième 'le' en position : " + s2.indexOf("le", 9), 10, 90); } }
Seules les nouveautés par rapport aux listings précédents sont commentées ici.
s2.indexOf("le") |
La méthode indexOf() donne la position de la chaîne
"le" dans la chaîne s2. A noter que la 1ère lettre est en position 0 (et non pas 1), et ainsi de suite. Si la sous-chaîne n'existe pas, indexOf() renvoie la valeur -1. |
s2.indexOf("LE") |
On recherche cette fois la même sous-chaîne, mais en majuscules. Vous remarquerez que indexOf() renvoie -1, ce qui veut dire que cette méthode fait la distinction majuscules/minuscules. |
s2.indexOf("le", 9) |
Voici une variante de la méthode indexOf(), qui reçoit 2 paramètres au lieu d'un seul : la sous-chaîne à chercher, et la position de départ dans la chaîne s2. Dans l'exemple, on cherche le mot "le" à partir de la 10ème lettre de s2 (et donc en ignorant le début de la chaîne s2). |
Combinée à une boucle, cette fonction indexOf() permettrait donc de
compter combien de "le" figurent dans la chaîne s2.
Pour un exemple complet, consultez la fiche Recherche d'occurrences.
Voici le code qui a été utilisé dans cette page HTML pour faire apparaître l'applet :
<applet code="Cherche.class" width=250 height=100> Votre navigateur n'est pas compatible Java ! </applet>
Pour plus de précisions sur l'intégration d'une applet, cliquez ici.