Bonjour;
Je cherche à initialiser une matrice carrée à l'aide d'un fichier texte de la forme suivante
-------------- fichier.txt ---------------
3
L 1 2 3
L 1 2 5
L 0 4 9
------------------------------------------La première ligne represente la dimension de la matrice carrée
Les lignes suivantes les valeurs de chaque ligne de la matrice, "L" pour signaler les lignes à traiter.
Voici le listing de Matrice.java :
------------------------------ Matrice.java --------------------------
import java.io.IOException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.util.StringTokenizer;
import java.lang.Integer;
public class Matrice
{
int[][] matrice;
int dimMatrice = 0;
// Affichage du contenu de la matrice
private void affichage(int dim)
{
for(int i=0; i<dim; i++)
{
for(int j=0; j<dim; j++)
{
System.out.print(matrice[i][j] +"\t");
}
System.out.println();
}
}
// Dimension du graphe
public int getDimension()
{
return dimMatrice;
}
// Initialiser une matrice depuis un fichier texte
public Matrice(String fichier) throws IOException
{
BufferedReader entree = new BufferedReader(new FileReader(fichier));
int nbLigne = 0; //Compteur de boucle
String lignelue = null;
while((lignelue = entree.readLine()) != null)
{
StringTokenizer tok = new StringTokenizer(lignelue, " ");
while(tok.hasMoreTokens())
{
if(nbLigne == 0)
{
//dimMatrice = Integer.parseInt(lignelue);
dimMatrice = Integer.parseInt(tok.nextToken());
System.out.println("La dimension de la matrice : "+dimMatrice);
nbLigne++;
}
else
{
matrice = new int[dimMatrice][dimMatrice];
if(tok.nextToken() == "L")
{
tok.nextToken();
}
for(int j=0; j<dimMatrice; j++)
{
matrice[nbLigne-1][j] = Integer.parseInt(tok.nextToken());
}
nbLigne++;
}
}
}
entree.close();
}
public static void main(String argc[]) throws IOException
{
System.out.println("Initialisation de la matrice");
Matrice matrice = new Matrice("fichier.txt");
matrice.affichage(matrice.getDimension());
}
}
-------------------------------------------------------------------------------A l'execution, j'obtien bien la dimension de la matrice mais celle celle-ci s'initialise mal à l'exception de la dernier ligne :
java matrice
Initialisation de la matrice
La dimension de la matrice : 3
0 0 0
0 0 0
0 4 9Je pense que je me sert mal de la classe StringTokenizer
Aidez moi à y voire plus claire.
Merci