[Java] Problème de tableau
Résolu/Fermé
valentin2703
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
-
3 mai 2011 à 12:50
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 4 mai 2011 à 12:37
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 4 mai 2011 à 12:37
A voir également:
- [Java] Problème de tableau
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Tableau word - Guide
- Code ascii tableau - Guide
- Tableau croisé dynamique - Guide
4 réponses
valentin2703
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
9
3 mai 2011 à 13:42
3 mai 2011 à 13:42
Je tien a préciser que lorsque que je lui demande d'afficher decompose[0], il affiche bien les 3 étoiles.
poukkid
Messages postés
106
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
11 avril 2012
11
Modifié par poukkid le 3/05/2011 à 15:21
Modifié par poukkid le 3/05/2011 à 15:21
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.
valentin2703
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
9
3 mai 2011 à 16:34
3 mai 2011 à 16:34
Le + signifie : un espace ou plus.
Alors ce fichier n'est pas le vraie que je récupère, j'ai en effet remarquer que quand je le crée moi même cela marche très bien, par contre quand je prend le fichier récupéré sur le switch, ça plante ^^
Alors ce fichier n'est pas le vraie que je récupère, j'ai en effet remarquer que quand je le crée moi même cela marche très bien, par contre quand je prend le fichier récupéré sur le switch, ça plante ^^
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
3 mai 2011 à 23:31
3 mai 2011 à 23:31
Pour une expression régulière, "un espace ou plus" devrait être "[\\s]+"
bzkr7
Messages postés
22
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
1 mars 2012
2
3 mai 2011 à 22:26
3 mai 2011 à 22:26
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. "
bzkr7
Messages postés
22
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
1 mars 2012
2
3 mai 2011 à 22:28
3 mai 2011 à 22:28
Remarque : ne pas oublier de changer le nom du fichier texte dans le programme "algotest.txt"
valentin2703
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
9
4 mai 2011 à 08:23
4 mai 2011 à 08:23
Merci pour ta solution, j'arrive bien a lire le fichier texte. Sauf que moi je ne souhaite récupéré que les GigabitEthrnet. Je ne peut pas me permettre de l'éditer à la main, cela doit ce faire de façons automatique.
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
4 mai 2011 à 00:01
4 mai 2011 à 00:01
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); } }
valentin2703
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
9
4 mai 2011 à 08:27
4 mai 2011 à 08:27
J'aime bien ta solution KX, comment je doit faire si je veut préciser que seul le GigabitEthernet m'intéresse ?
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
4 mai 2011 à 09:31
4 mai 2011 à 09:31
Je croyais que tu voulais GigabitEthernetx/x mais si tu ne veux que GigabitEthernet, tu peux mettre :
useDelimiter("[\\W\\d]+")
valentin2703
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
9
4 mai 2011 à 09:56
4 mai 2011 à 09:56
Oui enfin je veut le x/x avec ^^ C'est juste que dans le fichier il n'y a pas que :
* GigabitEthernetx/x sur la ligne.
* GigabitEthernetx/x sur la ligne.
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
4 mai 2011 à 12:37
4 mai 2011 à 12:37
Alors donne moi un exemple complet de fichier, peut-être qu'il vaudrait mieux utiliser un pattern sur les éléments plutôt que sur le délimiteur (ou une combinaison des deux)
String pattern1,pattern2; sc.useDelimiter(pattern1); while (sc.hasNext(pattern2)) liste.add(sc.next(pattern2));