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 : 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 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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)
Partager