Bonjour, j'ai implémenté une méthode de recherche d'une sous-chaîne dans une chaîne (méthode de Knuth Morris Pratt), le code à l'air bon, il n'y a rien à signaler mais lors de l'exécution la méthode charat ne fonctionne pas. Voici le code de la méthode implémentée (initialisation d'un tableau):

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
public void Init_tab(){
        int i = 0;
        int j = -1 ;
        char c='\0';
 
        tab_motif[0]=j;
        while((motif.charAt(i)) != ('\0')){
            if(motif.charAt(i)==c){
                tab_motif[i+1]=j+1;
                i++;
                j++;
            }
            else{
                if(j>0){
                    j=tab_motif[j];                   
                }
                else{
                    tab_motif[i+1]=0;
                    i++;
                    j=0;
                }
                c=motif.charAt(j);
            }
        }  
}
le message d'erreur est :
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 7
D'ou vient cette erreur et comment faire pour faire fonctionner le programme?
Merci d'avance pour vos réponses.