L'analyse des données à partir de fichier texte en plusieurs tableaux en Java

Permettez-moi de commencer par dire que je suis assez nouveau à Java, donc pardonnez-moi si je fais des erreurs évidentes...

J'ai un fichier texte que je doit lire les données et de diviser les données dans des tableaux distincts.

Le fichier texte contient les données dans ce format (bien que si nécessaire, il peut être légèrement modifiée pour avoir des repères d'identification si c'est le seul moyen)

noOfStudents

studentNAme studentID numberOfCourses

courseName courseNumber creditHours grade

courseName courseNumber creditHours grade

courseName courseNumber creditHours grade

.

.

studentNAme studentID numberOfCourses

courseName courseNumber creditHours grade

courseName courseNumber creditHours grade

courseName courseNumber creditHours grade

.

.

La première ligne indique le nombre total des "étudiants" qui seront inscrites et qui auront besoin d'être déplacé dans les tableaux.
Un tableau va contenir des informations sur les étudiants afin

studentName, studentID, numberOfCourses

pour un tableau, et

courseName, courseNumber, creditHours, grade

pour le deuxième tableau.

Mon problème est issu de l'analyse de ces données.

Je suis en train de lire à la première ligne, la conversion en int et l'utilise pour déterminer la taille de mes étudiants tableau.
Après que je suis à une perte pour savoir comment déplacer les données dans des tableaux et d'avoir mon programme savoir quel tableau pour déplacer des lignes dans.

Une chose à noter est que le nombre de cours, chaque étudiant prend est variable donc je ne peux pas il suffit de lire 1 ligne dans un tableau, puis 3 lignes dans le suivant, etc.

Ai-je besoin d'utiliser des identifiants ou ai-je raté quelque chose d'évident? J'ai été à la recherche sur ce problème depuis une semaine maintenant et à ce point, je suis juste frustré.

Toute aide est grandement appréciée! merci

edit: Voici la section de code, je travaille en ce moment.

public static void main(String args[])
  {
  try{
  //Open the file
  FileInputStream fstream = new FileInputStream("a1.txt");
  //Get the object of DataInputStream
  DataInputStream in = new DataInputStream(fstream);
  BufferedReader br = new BufferedReader(new InputStreamReader(in));

  String strLine; //temporarily holds the characters from the current line being read
  String firstLine; //String to hold first line which is number of students total in     file.

  //Read firstLine, remove the , character, and convert the string to int value. 
  firstLine = br.readLine();
  firstLine = firstLine.replaceAll(", ", "");
  int regStudnt = Integer.parseInt(firstLine);
  //Just to test that number is being read correctly.
  System.out.println(regStudnt + " Number of students\n");

  //2D array to hold student information
  String[][] students;
  //Array is initialized large enough to hold every student with 3 entries per student. 
  //Entries will be studentName, studentID, numberOfCourses
  students = new String[3][regStudnt];


  //Read File Line By Line
  while ((strLine = br.readLine()) != null)   {
      //Split each line into separate array entries via .split at indicator character.
      //temporary Array for this is named strArr and is rewriten over after every line   read.
      String[] strArr;
      strArr = strLine.split(", ");
  }

  //Close the input stream
  in.close();
    }catch (Exception e){//Catch exception if any
  System.err.println("Error: " + e.getMessage());
  }
  }

J'espère que cela aide quelqu'un pour m'amener dans la bonne direction.

Je suppose que le problème majeur que j'ai fais à partir de ce point, c'est de découvrir comment faire une boucle de telle manière que l'étudiant info est à lire à l'élève au tableau, puis le cours d'info à la ligne appropriée de la matrice de localisation, puis recommencer avec un nouvel élève, jusqu'à ce que tous les élèves ont été lus.

  • Est-ce devoirs ou pourquoi voulez-vous/besoin d'utiliser des tableaux? Si oui, veuillez étiqueter de façon appropriée.
  • il est évidemment devoirs, mais c'est un point discutable. À l'affiche originale, il y aura une ligne vide entre chaque élève de données? Pouvez-vous poster un exemple de fichier de données?
  • Pour commencer, vous voudrez peut-être lire dans chaque ligne, la diviser sur des espaces à l'aide de line.split("\\s") et ensuite décider de la façon de continuer sur la base du nombre d'éléments que vous avez reçu de split.
  • Il y a une ligne vide entre chaque élève dans le fichier texte
  • avez-vous besoin d'une source complète ou juste des indices ou pseudo-code ??
InformationsquelleAutor LucRicher | 2011-09-26