Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3014 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Probleme StringTokenizer et tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme StringTokenizer et tableau

n°2067951
bryan63
Posté le 04-04-2011 à 20:05:46  profilanswer
 

Bonsoir tout le monde, j'ai un problème :
j'ai un programme qui lit un fichier texte, et ensuite, je doit stocker des données contenu dans ce texte dans un tableau de dimension 2(matrice). Ligne par ligne, je met la première ligne de la matrice, etc... Mais le problème est qu'en faisant un system.out.println du tableau comme ci dessous, ca marche, mais si je fait un affichage en dehors de ma boucle, toutes les valeurs de ma matrice sont 0 et je ne vois pas pourquoi :

Code :
  1. if(cptLigne>3){
  2.    st = new StringTokenizer(ligne, " " );
  3.    i=0;
  4.    j=0;
  5.    while(st.hasMoreTokens()){
  6.       tab[j][i]=Integer.parseInt(st.nextToken());
  7.       System.out.println(tab[j][i]);
  8.       i++;
  9.    }
  10. }
  11. j++;
  12. cptLigne++;


 
Merci d'avance!


Message édité par bryan63 le 04-04-2011 à 21:00:57
mood
Publicité
Posté le 04-04-2011 à 20:05:46  profilanswer
 

n°2068303
mr simon
Posté le 05-04-2011 à 22:22:45  profilanswer
 

il manque du code, mais il ne faut pas reinitialiser j a 0 chaque tour ... Dans cet example, tu remplies tjrs la premiere ligne ...

n°2068312
bryan63
Posté le 06-04-2011 à 00:23:57  profilanswer
 

mr simon a écrit :

il manque du code, mais il ne faut pas reinitialiser j a 0 chaque tour ... Dans cet example, tu remplies tjrs la premiere ligne ...


 
Alors voila ma classe Main:

Code :
  1. import java.io.File;
  2. import java.io.IOException;
  3. public class Main {
  4. static int tab[][] = new int[7][24];
  5. public static void main(String[] args) throws IOException {
  6.  File f = new File("test.pgm" );
  7.  Matrice m = new Matrice(f);
  8.  tab=m.getTab();
  9.  System.out.println(tab[1][1]);
  10. }
  11. }


 
Et ma classe Matrice :

Code :
  1. import java.io.BufferedReader;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileReader;
  5. import java.io.IOException;
  6. import java.util.StringTokenizer;
  7. public class Matrice {
  8. private int hauteur;
  9. private int largeur;
  10. private int Vmax;
  11. private int tab[][];
  12. public Matrice(File pgm) throws IOException{
  13.     int cptLigne=0,i,j=0;
  14.     BufferedReader lecteurAvecBuffer = null;
  15.     String ligne;
  16.     StringTokenizer st;
  17.     try{
  18.      lecteurAvecBuffer = new BufferedReader(new FileReader(pgm)); //Permet de charger le fichier
  19.     }
  20.     catch(FileNotFoundException exc){
  21.      System.out.println("Erreur d'ouverture" );
  22.     }
  23.    
  24.     while ((ligne = lecteurAvecBuffer.readLine()) != null){ //Parcourir le fichier
  25.      if(cptLigne==1)  //Definit la largeur
  26.       largeur=Integer.parseInt(ligne);
  27.    
  28.      if(cptLigne==2) //Definit la hauteur
  29.       hauteur=Integer.parseInt(ligne);
  30.    
  31.      tab = new int[hauteur][largeur];
  32.    
  33.      if(cptLigne==3) //Definit Vmax
  34.       Vmax=Integer.parseInt(ligne);
  35.    
  36.      if(cptLigne>3){ //Construit la matrice largeur*hauteur avec le contenu du fichier  
  37.       st = new StringTokenizer(ligne, " " );
  38.       i=0;
  39.       while(st.hasMoreTokens()){
  40.        tab[j][i]=Integer.parseInt(st.nextToken());
  41.        System.out.print(tab[j][i]);
  42.        i++;
  43.       }
  44.       System.out.println("\n" );
  45.       j++;
  46.      }
  47.      cptLigne++;
  48.      } 
  49.     }
  50. public int[][] getTab(){
  51.  return tab;
  52. }
  53. }


 
Le contenu du fichier:
P2
24
7
15
0 0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0 0  0  0  0  0  0  0
0 3  3  3  3  0  0  7  7 7  7  0  0 11 11 11 11 0  0 15 15 15 15  0
0 3  0  0  0  0  0  7  0 0  0  0  0 11  0  0  0 0  0 15  0  0 15  0
0 3  3  3  0  0  0  7  7 7  0  0  0 11 11 11  0 0  0 15 15 15 15  0
0 3  0  0  0  0  0  7  0 0  0  0  0 11  0  0  0 0  0 15  0  0  0  0
0 3  0  0  0  0  0  7  7 7  7  0  0 11 11 11 11 0  0 15  0  0  0  0
0 0  0  0  0  0  0  0  0 0  0  0  0  0  0  0  0 0  0  0  0  0  0  0
 
Or quand je fait le "System.out.println(tab[1][1])" dans le main, il devrait m'afficher 3, or il m'affiche 0. En fait, il m'affiche tout le temps 0... sauf dans la boucle où j'ai bien ce que je veux.
 
Merci d'avance!

n°2068314
mr simon
Posté le 06-04-2011 à 01:00:46  profilanswer
 

tu alloues un tableau a chaque ligne (ligne 35)

n°2068320
bryan63
Posté le 06-04-2011 à 07:32:57  profilanswer
 

Ah oui, tout simplement, merci beaucoup!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Probleme StringTokenizer et tableau

 

Sujets relatifs
Probleme liste deroulante en PHP[VBA AutoCAD] Problème inter-application
probleme rendu IE/FFproblème script export csv php
probleme parser et regroupe des elementsProblème de centrage total du site.
[PHP] Problème système parrainage[Résolu] Problème sur un formulaire de contact
Probleme fonction SWITCH SQL ACCESSProblème return char.
Plus de sujets relatifs à : Probleme StringTokenizer et tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR