Erreur Introuvable dans une fonction
Bonjour,
Je comprend pas ou est l'erreur dans cette fonction là.En fait lafonction renvoi la chaine la plus presente dans la chaine qu'on lui envoi. Mais j'ai une erreur et je sais pas d'ou ca vient!
La fonction:
Code:
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
| public String subseq(String seq,int l){
String ch=""; // sous chaine
String res=""; // resultat
int val=0; // compteur de sous chaine
for(int i=0;i<seq.length();i++){
ch=seq.substring(i,i+l);
int z=0;
Pattern p = Pattern.compile(ch);
Matcher m = p.matcher(seq);
while(m.find()) {
z++;
}
if(z > val){ // Comparaison avec la chaine deja stocké
val=z;
res=ch;
}
else if(z==val){
if(ch.compareTo(res)== -1){
val=z;
res=ch;
}
}
}
return res;
} |
Code:
1 2 3 4
| Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 27
at java.lang.String.substring(String.java:1946)
at Acide.subseq(Acide.java:106)
at Main.main(Main.java:10) |