ArrayList overslaan van een index

stemmen
-1

Ik wil dat mijn array lege indexen overslaan. Dit is het formaat van het tekstbestand.

some text

1
2
3
4

2
5
4
6

5
7
6
8

Hier is mijn 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
}
}

Ik dacht dat de weg zette ik hoe mijn code voegt regels negeert de lege degenen. Ook afvraagt ​​waarom de grootte van de lijst is 16 wanneer er slechts 15 indexen. Mijn vraag is hoe kan ik lege regels tekst in mijn dossier te negeren.

De vraag is gesteld op 03/12/2019 om 00:03
bron van user
In andere talen...                            


1 antwoorden

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

Dit geldt alleen controleert of de gelezen lijn is null ornot. Per definitie regel alleen nul als de laatste regel is gelezen. Lege lijnen worden weergegeven door lege tekenreeksen. Om deze over te slaan moet u controleren of de regel leeg.

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

Je kon de lijnen knippen als ze ruimtes u wilt voorkomen dat zou kunnen bevatten.

while ((line = br.readLine()) !=null){  
     if(!line.trim().isEmpty()) {
          list.add(line);
     } 
}
antwoordde op 03/12/2019 om 00:24
bron van user

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