Arraylist einen Index Überspringen

stimmen
-1

Ich möchte, dass meine Array leer Indizes überspringen. Dies ist das Format der Textdatei.

some text

1
2
3
4

2
5
4
6

5
7
6
8

Hier ist mein Code

import java.io.*; 
import java.util.*;
import java.io.IOException;
class ArrayPractice {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new FileReader(file.txt)); //reads the file
        ArrayList<String> list = new ArrayList<String>(); //creates arraylist
        String line;
    while ((line = br.readLine()) !=null){ 
                        //i thought this just reads the lines and if its null skips it but its not happening
         list.add(line);
    }
        br.close();
        System.out.println(list);
        if (list.get(2).equals(list.get(5))){ //comparing two of the lines that should be equal
            System.out.println(Should be equal);
        } else {
            System.out.println(list.get(3));
            System.out.println(list.get(7));
            System.out.println(This is what is actually equal from my code)
        }
            System.out.println(list.size()); //says the size of the list is 16
}
}

Ich dachte, wie ich es einrichten, wie mein Code fügt Zeilen die leeren diejenigen ignoriert. Auch fragen, warum die Größe der Liste 16 ist, wenn es nur 15 Indizes. Meine Frage ist, wie kann ich leere Zeilen Text in meiner Datei ignorieren.

Veröffentlicht am 03/12/2019 um 00:03
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0
while ((line = br.readLine()) !=null){  
     list.add(line);
}

Dies ist nur überprüft, ob die Leseleitung ist null ähnlich fein. Per Definition ist eine Linie nur null, wenn die letzte Zeile gelesen wurde. Leerzeilen sind durch leere Strings dargestellt. Um diejenigen zu überspringen müssen Sie prüfen, ob die Zeile leer ist.

while ((line = br.readLine()) !=null){  
     if(!line.isEmpty()) {
          list.add(line);
     } 
}

Sie könnten die Linien schneiden, wenn sie Leerzeichen enthalten könnten Sie vermeiden möchten.

while ((line = br.readLine()) !=null){  
     if(!line.trim().isEmpty()) {
          list.add(line);
     } 
}
Beantwortet am 03/12/2019 um 00:24
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more