Exception :ArrayOUtOfBoundsException
Résolu
ctere
-
ctere -
ctere -
Bonjour cela fait plusieurs jours que j'essais de résoudre ce problème mais en vain j'èspère que quelqu'un pourra m'aider
Je dois parcourir un tableau de caractères mais je me retrouve avec cette exception et je n'arrive pas à voir d'où cela peut provenir
et l'erreur est
Je dois parcourir un tableau de caractères mais je me retrouve avec cette exception et je n'arrive pas à voir d'où cela peut provenir
public static void afficher(String words) throws ArrayIndexOutOfBoundsException{
String str[];
str = words.split(" ");
String[] tab = new String[WebCrawler.getWordsResults().size()];
WebCrawler.getWordsResults().toArray(tab);
for (int i=0; i < words.length(); i++){
System.out.println(str[i]);
System.out.println(tab[i]);
}
}
public static void main(String[] args) throws IOException {
afficher("université de paris");
}
et l'erreur est
universitéCela affiche quand même l'execution mais avec l;exception
de
paris
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at searchEngine.SearchByKeywords.afficher(SearchByKeywords.java:76)
at searchEngine.SearchByKeywords.main(SearchByKeywords.java:98)
2 réponses
-
Bonsoir,
J'ai réduit le code au minimum pour que tu comprennes mieux ton erreur :
public class Test { public static void main(String[] args) { String words = "Hello World !"; String[] str = words.split(" "); for (int i = 0; i < words.length(); i++) System.out.println(str[i]); } } -
Bonsoir, merci de la réponse rapide, mais je ne comprends pas mieux avec ton exemple
parce que ça fait des heures que je suis dessus, et j'ai fais tellement de modification sans reussir à régler ce problème que je ne vois toujours pas-
Le problème c'est que
words.length()
est le nombre de caractères dans la chaînewords
or toi ce que tu affiches ce ne sont pas les caractères, mais les motsstr[i]
mais il y a moins de mots à afficher qu'il n'y a de caractères dans la chaîne.
Dans l'exemple,words.length()
vaut 13, mais il n'y a que 3 mots à afficher ("Hello", "World" et "!") donc forcément dès le quatrième mot ça plante... -
-