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)
A voir également:
- Exception :ArrayOUtOfBoundsException
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : - Guide
- Une exception non gérée s'est produite dans votre application - Forum Word
- A java exception has occurred ✓ - Forum Minecraft
- Application error: a client-side exception has occurred while loading www.leboncoin.fr (see the browser console for more information). - Forum Réseaux sociaux
- Erreur d'application : une exception côté client s'est produite (consultez la console du navigateur pour plus d'informations). - Forum Services en ligne
2 réponses
Bonsoir,
J'ai réduit le code au minimum pour que tu comprennes mieux ton erreur :
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
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
Dans l'exemple,
words.length()est le nombre de caractères dans la chaîne
wordsor toi ce que tu affiches ce ne sont pas les caractères, mais les mots
str[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...