[Java] Problème de tableau
Résolu
valentin2703
Messages postés
180
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je doit récupérer des informations dans un fichier texte, pour cela j'utilise la méthode split.
Le fichier texte ressemble à cela :
* GigabitEthernet1/1
* GigabitEthernet1/2
* GigabitEthernet2/1
et dedans je ne souhaite récupérer que les GigabitEthernetx/x, je fait donc :
Mais quand je lance le code je me retrouve avec ceci :
GigabitEthernet1/1
java.lang.ArrayIndexOutOfBoundsException: 1
L'affichage du premier GigabitEthernet marche bien, mais le reste bloque ^^"
Je doit récupérer des informations dans un fichier texte, pour cela j'utilise la méthode split.
Le fichier texte ressemble à cela :
* GigabitEthernet1/1
* GigabitEthernet1/2
* GigabitEthernet2/1
et dedans je ne souhaite récupérer que les GigabitEthernetx/x, je fait donc :
try{ BufferedReader lire = new BufferedReader(new FileReader("C:/Essaie.txt")); String line; while ((line = lire.readLine())!= null){ String[] decompose = line.split(" +"); System.out.println(decompose[1]); } lire.close(); }catch(IOException z){ System.exit(0); }
Mais quand je lance le code je me retrouve avec ceci :
GigabitEthernet1/1
java.lang.ArrayIndexOutOfBoundsException: 1
L'affichage du premier GigabitEthernet marche bien, mais le reste bloque ^^"
A voir également:
- [Java] Problème de tableau
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
4 réponses
Je tien a préciser que lorsque que je lui demande d'afficher decompose[0], il affiche bien les 3 étoiles.
J'ai testé chez moi et ca fonctionne tres bien, même si je ne comprend pas à quoi sert le + dans le split(" +"), avec ou sans le + en tout cas ca fonctionne bien.
Le probleme doit venir de ton fichier. Ya t'il une ligne vide entre tes * Giabit... ?
ou bien un caractère spécial?
Si une ligne ne te permet d'avoir qu'une seule case dans ta variable decompose, alors decompose[1] t'amenera cette renverra cette erreur.
Le probleme doit venir de ton fichier. Ya t'il une ligne vide entre tes * Giabit... ?
ou bien un caractère spécial?
Si une ligne ne te permet d'avoir qu'une seule case dans ta variable decompose, alors decompose[1] t'amenera cette renverra cette erreur.
Je te propose la solution suivante en utilisant des ArrayList et on changeant la syntaxe du fichier texte.
Pour le fichier Texte il faut que tes instructions soient écrit de cette façon La;
GigabitEthernet1/1
GigabitEthernet1/2
GigabitEthernet2/1
JE TE CONSIELLE d'utiliser bloc note pour l édition du fichier texte
Ensuite puisque on lit notre fichier ligne par ligne donc on qu'a stocker chaque line dans notre ArrayList.
Le Code JAVA est :
try{
BufferedReader lire = new BufferedReader(new FileReader("C:/algotest.txt"));
ArrayList decompose = new ArrayList();
int i=0;
String str=null;
while ((str=lire.readLine())!= null){
decompose.add(str);
System.out.print(decompose.get(i).toString()+"\n");
i++;
}
lire.close();
}catch(IOException z){
System.exit(0);
}
" Si tu as de nombreuses richesses, donne de ton bien ; si tu possèdes peu, donne de ton coeur. "
Pour le fichier Texte il faut que tes instructions soient écrit de cette façon La;
GigabitEthernet1/1
GigabitEthernet1/2
GigabitEthernet2/1
JE TE CONSIELLE d'utiliser bloc note pour l édition du fichier texte
Ensuite puisque on lit notre fichier ligne par ligne donc on qu'a stocker chaque line dans notre ArrayList.
Le Code JAVA est :
try{
BufferedReader lire = new BufferedReader(new FileReader("C:/algotest.txt"));
ArrayList decompose = new ArrayList();
int i=0;
String str=null;
while ((str=lire.readLine())!= null){
decompose.add(str);
System.out.print(decompose.get(i).toString()+"\n");
i++;
}
lire.close();
}catch(IOException z){
System.exit(0);
}
" Si tu as de nombreuses richesses, donne de ton bien ; si tu possèdes peu, donne de ton coeur. "
Voici une manière de faire, sans avoir à modifier ton fichier...
import java.io.File; import java.io.FileNotFoundException; import java.util.LinkedList; import java.util.List; import java.util.Scanner; public class Test { public static void main(String[] args) throws FileNotFoundException { List<String> liste = new LinkedList<String>(); Scanner sc = new Scanner(new File("C:\\Essaie.txt")).useDelimiter("[\\s*]+"); while(sc.hasNext()) liste.add(sc.next()); sc.close(); String[] decompose = liste.toArray(new String[liste.size()]); for (String s : decompose) System.out.println(s); } }