TXT-Datei einlesen und in einer Matrix/ 2 dimensionalem Array speichern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • TXT-Datei einlesen und in einer Matrix/ 2 dimensionalem Array speichern

    Hi Leute,

    ich habe heute damit begonnen, mich ein bischen an Backtracking zu versuchen, jedoch scheitere ich schon am ersten Schritt. Ich habe vor, einen Irrgarten aus Zeichen, mittels Scanner, einzulesen und diese dann in einem Array abzuspeichern. Mein Code zum einlesen sieht wie folgt aus:

    Quellcode

    1. import java.io.*;
    2. import java.util.Scanner;
    3. public class Test {
    4. public static void main(String args[]) {
    5. try {
    6. FileInputStream file = new FileInputStream("a.txt");
    7. Scanner s = new Scanner(file);
    8. while (s.hasNextLine()) {
    9. String line = s.nextLine();
    10. System.out.println(line);
    11. }
    12. file.close();
    13. } catch (IOException e) {
    14. System.out.println("Fehler");
    15. }
    16. }
    17. }
    Alles anzeigen


    Der Irrgarten sieht überigens wie folgt aus:

    Quellcode

    1. ---------------
    2. |S | | |
    3. | --- | ---- |
    4. | | | | |
    5. | | |---- |Z|
    6. | | | | |
    7. | | | | | |
    8. | | | | |
    9. ---------------


    Die Ausgabe der TXT Datei funktioniert auch, nur weiß ich nicht, wie ich die Chars in einem Array ablegen und danach ausgeben soll. Ich sitze schon seit Tagen daran und bin nicht weiter gekommen. Ihr seid meine letzte Hoffnung. Für eine Antwort, oder sogar einen ergänzten Code wäre ich euch unendlich dankbar.

    Viele liebe Grüße
    NikeAir22 ;)
  • in dem du in der zweiten schleife dein array befüllst, zb. so

    Quellcode

    1. while (s.hasNextLine()) {
    2. String line = s.nextLine();
    3. for (int i ;i<=line.length(); i++){
    4. arr[k][i] := line.charat(i);
    5. }
    6. k ++;
    7. System.out.println(line);
    8. }


    habs ungetestet, aber so ungefähr würde das dann aussehen
    MfG ShureG

    There are 10 kinds of people. Those who understand binary notation, and those who do not.
  • Hi...danke für die Antwort...ich bekomme zwar von Java immer einen Fehler ausgespuckt, aber ich komme der Sache näher :) ...könntest du es vielleicht noch testen, oder so und mir dann vllt mal zeigen? Sorry, aber ich bin noch ein blutiger Java-Anfänger :) Mein Code sieht jetzt so aus:

    Quellcode

    1. import java.io.*;
    2. import java.util.Scanner;
    3. public class Test {
    4. public static void main(String args[]) {
    5. try {
    6. char arr[][];
    7. FileInputStream file = new FileInputStream("a.txt");
    8. Scanner s = new Scanner(file);
    9. while (s.hasNextLine()) {
    10. String line = s.nextLine();
    11. for (int i=0 ;i<=line.length(); i++){
    12. int k=0;
    13. arr[k][i] = line.charAt(i);
    14. k ++;
    15. }
    16. }
    17. file.close();
    18. } catch (IOException e) {
    19. System.out.println("Fehler");
    20. }
    21. }
    22. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von NikeAir22 ()

  • Quellcode

    1. import java.io.*;
    2. import java.util.Scanner;
    3. public class Test {
    4. public static void main(String args[]) {
    5. try {
    6. FileInputStream file = new FileInputStream("a.txt");
    7. Scanner s = new Scanner(file);
    8. char arr[][];
    9. while (s.hasNextLine()) {
    10. String line = s.nextLine();
    11. for (int i=1 ;i<=line.length(); i++){
    12. for (int k=1 ;k<=line.length(); k++){
    13. arr[k][i] = line.charAt(i); //the local variable arr may not have been initialized
    14. }
    15. }
    16. for (int i=0 ;i<=line.length(); i++){
    17. int k=0;
    18. System.out.println (arr[i][k]); //the local variable arr may not have been initialized
    19. k ++;
    20. }
    21. }
    22. file.close();
    23. } catch (IOException e) {
    24. System.out.println("Fehler");
    25. }
    26. }
    27. }
    Alles anzeigen



    Habe die entsprechenden Stellen auskommentiert. Ich weiß echt nicht weiter. Aber schon mal vielen Dank, für den Hinweis mit dem k. Sieht das denn jetzt besser aus mit dem k?? :)
  • du sollst nicht irgendwas hin schreiben, sonderen überlegen.

    beantworte mir mal die FRage:
    - wozu brauchst du drei in sich geschachtelte schleifen für ein 2 dim array?
    - was macht die weil schleife bei dir?
    - was mach die ersten zwei for schleifen?
    - wozu ist die unterste forschleife?

    du kommst nur mit zwei schleifen zurecht, und zwar mit der erst solltest du über die einzelne Zeilen in der datei iterieren und dann nur noch eine innere schleife durch die einzelne werte der zeile zu iterieren.
    MfG ShureG

    There are 10 kinds of people. Those who understand binary notation, and those who do not.