ArrayList, ganze Zeilen löschen oder überspringen

jojojojo

Neues Mitglied
Hallo zusammen,
ich habe eine .txt Datei eingelesen, die brauchbare Informationen beinhaltet, aber auch Zeilen, die lediglich Kommentare darstellen und mit einer "#" starten oder es gibt Leerzeilen. Ich will nun eine neue ArrayList erstellen, wo ausschließlich die brauchbaren Zeilen eingelesen werden. Die anderen Zeilen sollen gelöscht oder übersprungen werde. Ich würde mich sehr über Anregungen freuen 🙂 DANKE!

Hier ist der bisherige Code:
[CODE lang="java" title="Auftragsdatei einlesen und vernünftig in ein neues Array formatieren"]import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

public class Auftrag {

public static void main (String [] args) {

String windowsPfadAuftrag = "C:\\Users\\Jojo\\Documents\\Eclipse\\Beispiel Auftragsdatei.txt";
Path pathA = Paths.get(windowsPfadAuftrag);
List<String> auftragsListe = new ArrayList<String>();

try {
auftragsListe = Files.readAllLines(pathA);
//neues array anlegen
List<String> auftraege = new ArrayList<String>();

for (int i = 0; i < auftragsListe.size(); i++)
{
while (auftragsListe.contains("#") && auftragsListe.isEmpty()) {
}
auftraege.add(auftragsListe.get(i));
}


System.out.println("Es wurden "+auftragsListe.size()+ " Zeilen eingelesen");
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(auftragsListe);
System.out.println(auftragsListe.get(2));

}
}[/CODE]
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    20,1 KB · Aufrufe: 25
Zuletzt bearbeitet:
bitte Code tags benutzen </> links oben...so ist es unmöglich was zu lesen und bilder sind auch shclecht für code
 
Puh ich weis nicht genau wie ich es erklären sollte

das Grund Prinzipbei dir wäre es

du gehst die Liste durch und immer wenns leer ist oder # hat musst du es nicht hinzufügen
nur ich finde es verwirrned du lädst alles in ein array und dann gehst das array durch um es woanders zu speichern nru um dann die geladenen Zeilen die du soweiso nicht brauchst weg zu haben...dann speichere sie gar nicht beim laden

du musst bei meinem halt noch das File auf dein File ändern aber im prinzip gehts so




Java:
class Auftrag{
    File auftragsListe = new File("auftrag.txt");
    public Auftrag() throws FileNotFoundException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(auftragsListe)));
        try {
            String line;
            while( (line = reader.readLine()) != null) {
                if(line.contains("#") || line.length() == 0) {
                    //nutzlos
                }else {
                    // deinem Speicher hinzufügen
                    System.out.println(line);
                }
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

der code ist nicht grad das gelbe vom Ei aber ich hatte jetzt kaum zeit umm was schick zu machen


das ist meine Test datei


hallo
bob
#unwichtig


2 Leerzeilen sollen weg sein
 
Zuletzt bearbeitet von einem Moderator:
Also Dein Code ist so nicht wirklich verständlich.

Was erwartest Du denn von z.B.
Java:
            while (auftragsListe.contains("#") && auftragsListe.isEmpty()) {
            }

Die Bedingung kann zum Glück nie erfüllt sein, denn die AuftragsListe kann nicht "#" enthalten und zugleich leer sein.

Wenn das aber der Fall wäre, dann hättest Du eine Endlosschleife.

Bei sowas ist es sehr wichtig, dass Du genau formulierst, was Du da machen willst. Formuliere es so, dass jemand anderes Deinen Anweisungen folgen kann ohne dass die Aufgabe bekannt ist. Da denkt also niemand für Dich mit. Schaffst Du es, das einmal zu formulieren?
 

Zurück
Oben