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)
