Split et String :(

Signaler
Messages postés
16
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
16 avril 2008
-
Messages postés
16
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
16 avril 2008
-
voilà, je cherche à spliter une String et pouvoir utiliser la troisième partie impulsa[3], comme par exemple la printer. Mais je ne comprend pas pourquoi cela ne fonctionne pas. J'ai cherché sur internet, sur sun, mais rien à faire je n'ai pas trouvé pourquoi ça ne fonctionne pas. Si quelqu'un pouvait m'aider ce serai génial, voici le petit programme :

FileReader fr = new FileReader(adressedufichier);
BufferedReader br = new BufferedReader(fr);

while((line = br.readLine()) != null)
{
String[] impulsa = line.split("\t",10);
System.out.println(impulsa[5]);
}


br.close();
}

voici une ligne type du fichier :

5 OK impulsa 0 5D110 451CDFAE06

et voici le résultat :

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at RGUI.lire(RGUI.java:38)
at RGUI.main(RGUI.java:56)


en fait seul impulsa[0] marche.
Merci d'avance :D

8 réponses

Messages postés
16
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
16 avril 2008

FileReader fr = new FileReader(adressedufichier);
BufferedReader br = new BufferedReader(fr);

while((line = br.readLine()) != null)
{
String[] impulsa = line.split("\t",10);
System.out.println(impulsa[5]);
}


br.close();
}
Messages postés
16
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
16 avril 2008

voici une ligne type du fichier : 5 OK impulsa 0 5D110 451CDFAE06
Messages postés
16
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
16 avril 2008

et voici le résultat : Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at RGUI.lire(RGUI.java:38) at RGUI.main(RGUI.java:56) en fait seul impulsa[0] marche. Merci d'avance :D
Messages postés
545
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
28 septembre 2011
2
Salut,

Et  tu as quoi dans ce impulsa[0] exactement ?

Sinon remplace ton "\t" par un " " même si je suis pas convaincu... De toute façon, des vrais délimiteurs façon ; : entre autres sont bien plus pratiques qu'une tabulation je pense ^^

gmi19oj19
Messages postés
332
Date d'inscription
mardi 12 juillet 2005
Statut
Membre
Dernière intervention
17 juillet 2010

Salut.
Essaie de mettre un test pour voir si ton tableau est assez grand avant l'affichage, parce que là si ton fichier contient une ligne vide (genre à la fin ^^), il est normal que ça plante.
sinon +1 pour remplacer les \t
http://kysicurl.free.fr/
Messages postés
16
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
16 avril 2008

La String est assurément assez grande car j'avais déjà essayé de l'initialisé à 10. De plus le fichier ne peux pas contenir de ligne vide, et enfin, je n'ai pas eu le choix des séparateurs, les fichiers existent déjà. j'ai déjà essayé de directement mettre une tabulation, ou un espace. En fait le plus étrange je trouve, c'est que impusla[0] j'ai effectivement les bonnes valeurs.
pour le +1, tu veux dire rempacer "\t" par "+1" ?

Merci pour vos réponses.
Messages postés
332
Date d'inscription
mardi 12 juillet 2005
Statut
Membre
Dernière intervention
17 juillet 2010

Non je voulais dire que j'étais d'accord (un de plus) pour remplacer les "\t" par " " par exemple.
Sinon aul ieu d'afficher impulsa[5] affiche la longueur du tableau pour voir ce qui se passe.
Je ne comprends pas "La String est assurément assez grande car j'avais déjà essayé de l'initialisé à 10." (en java la taille de String n'est jamais un problème normalement).
Messages postés
16
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
16 avril 2008

Je me suis mal exprimé, je voulais dire que le tableau de string est assez grand