0

Je prends des données depuis un fichier texte contenant les informations suivantes:Conversion des chiffres dans un tableau de chaînes à un tableau int deux dimensions

Jessica 80 90 
Peter 106 50 
Lucas 20 85 
Sarah 90 40 
John 35 12 

Ces données sont ensuite converti en un tableau de chaînes et d'être émis par mon code. Je voudrais pouvoir garder les noms dans mon tableau de chaînes tout en convertissant les nombres en un tableau de int [] [] afin que je puisse manipuler les variables pour trouver des moyennes pour les étudiants et l'examen. Mon code de travail se présente comme suit ci-dessous:

import java.io.*; 
import java.util.*; 

public class Array_2D{ 

public static String[] readLines(String filename) throws IOException { 
     FileReader fileReader = new FileReader(filename); 

     BufferedReader bufferedReader = new BufferedReader(fileReader); 
     List<String> lines = new ArrayList<String>(); 
     String line = null; 

     while ((line = bufferedReader.readLine()) != null) { 
      lines.add(line); 
     } 

     bufferedReader.close(); 

     return lines.toArray(new String[lines.size()]); 
} 

public static void inputstream() throws IOException { 
     String filename = "data.txt"; 
     try { 
      String[] lines = readLines(filename); 
      for (String line : lines) 
      { 
       System.out.println(line); 
      } 
     } catch(IOException e) { 
      System.out.println("Unable to create " + filename+ ": " + e.getMessage()); 
     } 

Quelqu'un at-il des informations qui me permettent de convertir les chiffres du tableau de chaînes à la int[][] afin que je puisse manipuler les chiffres par colonne et ligne? Merci pour votre temps.

+3

Vous pouvez utiliser la POO et créer un objet étudiant pour chaque ligne. Cela se traduirait par un meilleur design plus lisible. – jwils

Répondre

1

Dans votre code chaque ligne contient un nom et deux entier, cela peut ne pas être générique, mais essayer quelque chose comme ça,

String names = new String[numberOfLines]; 
 
int scores[][] = new int[numberofLines][2]; 
 
for(int i = 0;i < numberOfLines;i ++){ 
 
    String words[] = lines[i].split("\\s+"); 
 
    names[i] = words[0]; 
 
    scores[i][0] = Integer.parseInt(words[1]); 
 
    scores[i][1] = Integer.parseInt(words[2]); 
 
}