Bonsoir à vous tous

J'ai un petit tp à réaliser il s'agit d'établir un programme qui peut compter le nombre d'occurence d'un mot dans une chaine de caractère ..mais là je n'arrive pas à comprendre comment que la méthode indexOf() fonctionne c'est pour ca que j'ai un problème avec ce programme qui n'affiche pas le resultat juste ..quelqu'un pourra m'aider à trouver le problème et m'expliquer comment cette dernière fonctionne merci d'avance le voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
 
 
 
import javax.swing.JOptionPane;
 
public class Occurence {
public static int NbrFois(String chaine,String mot){
	int cmpt=0;int i=0;
	while(i<chaine.length())
 
		{
		if (chaine.indexOf(mot, i)!=-1){
		cmpt++;
		}
		i=i + (mot.length());
 
		chaine=chaine.substring(i);
 
		}
 
	return cmpt;
}
	/**
         * @param args
         */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 String chaine= JOptionPane.showInputDialog(null,"donner votre phrase");if (chaine==null) JOptionPane.showMessageDialog(null,"la chaine est vide");
		 String mot= JOptionPane.showInputDialog(null,"donner le mot à rechercher");if (mot==null)JOptionPane.showMessageDialog(null,"la chaine est vide");
		int nbre=NbrFois(chaine,mot);
		if(nbre!=0)
		JOptionPane.showMessageDialog(null,"Le mot {"+mot+"} apparait "+ nbre+" fois");else JOptionPane.showMessageDialog(null,"le mot n'apparait pas dans la phrase");
 
 
 
	}
 
}
Merci