ArrayList skákání indexu

hlasů
-1

Chci array přeskočit prázdné indexy. Toto je formát textového souboru.

some text

1
2
3
4

2
5
4
6

5
7
6
8

Tady je můj kód

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
}
}

Myslel jsem, jak mám nastavit, jak se můj kód přidá řádky ignoruje ty prázdné. Také přemýšlel, proč je velikost seznamu je 16, pokud existují pouze 15 indexy. Moje otázka je, jak mohu ignorovat prázdné řádky textu v mém souboru.

Položena 03/12/2019 v 00:03
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

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

Toto pouze kontroluje, zda čtecí linka je null ornot. Podle definice linka je pouze nulový, když je poslední řádek byla přečtena. Prázdné řádky jsou reprezentovány prázdné řetězce. Aby bylo možné přeskočit ty budete muset zkontrolovat, zda je řádek prázdný.

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

Dalo by se zkrátit linky v případě, že by mohly obsahovat mezery, které chcete, aby se zabránilo.

while ((line = br.readLine()) !=null){  
     if(!line.trim().isEmpty()) {
          list.add(line);
     } 
}
Odpovězeno 03/12/2019 v 00:24
zdroj uživatelem

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