Dynamische Arrays und substring



  • Hallo Leute,

    ich habe zwei Fragen, die sich auch nicht hinreichend durch google beantworten ließen.

    Zum einen:
    zeile = zeile.substring( 0, zeile.indexOf('*'));

    Ich lese eine Textdatei ein und möchte nur alles bis zum * beachten.
    Deshalb möchte ich den Rest einfach abschneiden (da '*' wie Javas '//' ein Kommentar einleiten). Nun habe ich aber nicht in jeder Zeile ein Kommentar stehen, weshalb er mit einem Fehler abbricht.

    * Kommentar
    Lorem ipsum * Kommentar
    noch mehr text * Kommentar
    * Kommentar
    Hier meldet er ein Fehler, da kein Sternchen vorhanden
    * Kommentar
    

    Des weiteren möchte ich ein 2D-Array erzeugen. Eine Dimension ist immer fest, die andere ist aber davon abhängig wieviele Zeilen in der Textdatei mit dem Zeichen # anfangen. Zum Beispiel für diese Datei:

    # 1 2 3
    # 4 5 6
    

    Soll ein Array erzeugt werden, welches immer 3 Elemente "nach rechts geht",
    aber die Zeilenanzahl erstmal unbekannt ist (in diesem Beispiel sind es ja gerade 2). Also int[][] x = new int[2][3];
    Ich möchte aber den Code nicht immer an die Textdatei anpassen - er soll es halt dynamisch feststellen.
    Mir sind Listen (ArrayList) bekannt. Kann man es aber nicht mit normalen 2D Arrays erstellen? Vielleicht gibt es da ein Trick.

    Liebe Grüße wade.



  • Entschuldigt bitte.
    Nach dem Absenden ist mir die Antwort zu Frage 1 selbst klar geworden.
    Ich kann vorher überprüfen ob zeile.indexOf('*'); ein -1 zurückliefert und diese Zeile dann überspringen.

    Bei dem Array stehe ich aber immernoch auf dem Schlauch.



  • Die ArrayList ist vorzuziehen, aber egal ob List oder Array:

    Pack die 3 Werte doch einfach in eine kleine Klasse

    class Values
    {
      int v1;
      int v2;
      int v3;
    }
    ArrayList<Values>
    // bzw
    Values v[] = new Values[2];
    

Anmelden zum Antworten