Dans cette fiche...

<Retour>

Description de l'applet

Difficulté : Résultat
Une question posée sur un newsgroup :
Comment compter la lettre "s" (par exemple) dans une phrase ?
Réponse...
Votre navigateur n'est pas compatible Java !

Listing de l'applet

// -------------------------------------------
// OCCURRENCES : DECOMPTE DE LETTRES
// -------------------------------------------
import java.applet.*;
import java.awt.*;

public class Occurrences extends Applet
{
	String chaine;
	public void init()
	{
		// Couleur de fond
		setBackground(Color.black);
		// Une chaîne de caractères (intellectuelle :o))
		chaine = "Les serpents de mer se sont sauvés";		
	}

	// Affichage
	public void paint(Graphics g)
	{
		int i = chaine.indexOf("s");
		int j = 0 ;	
		while (i != -1)
		{
			j++;
			i = chaine.indexOf("s", i+1);
		}
		g.setColor(Color.yellow);
		g.drawString(chaine, 10, 15);
		g.drawString("Nombre de s : "+ j, 10, 30);
	}
}

Télécharger le listing

Le listing en détail...

Comme d'habitude, seules les nouveautés sont commentées.

int i = chaine.indexOf("s");
int j = 0 ;
while (i != -1)
{
	j++;
	i = chaine.indexOf("s", i+1);
}
La méthode indexOf() permet de trouver la position d'une chaîne de caractères (s) dans une autre (chaine).
On recherche donc la position de la 1ère lettre s, avant la boucle.
La variable j servira à compter le nombre de s trouvés (donc 0 au départ).

Ensuite, on boucle jusqu'à ce qu'on trouve un s (le 1er compris).
Chaque boucle augmente j, puis recherche la lettre s suivante (en partant après le dernier s trouvé).

Reste à afficher le résultat...
On pourrait, avec la même technique, décompter un nombre de mots précis dans la phrase.

Intégration de l'applet dans la page

Voici le code qui a été utilisé dans cette page HTML pour faire apparaître l'applet :

<applet code="Occurrences.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.