ArrayList pular um índice

votos
-1

Eu quero a minha matriz para pular índices em branco. Este é o formato do arquivo de texto.

some text

1
2
3
4

2
5
4
6

5
7
6
8

Aqui está o meu código

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

Eu pensei que a maneira que eu configurar como meu código adiciona linhas ignora os em branco. Também se perguntando por que o tamanho da lista é de 16 quando há apenas 15 índices. A minha pergunta é como faço para ignorar linhas em branco de texto em meu arquivo.

Publicado 03/12/2019 em 00:03
fonte usuário
Em outras línguas...                            


1 respostas

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

Isso só verifica se a linha de leitura é triturados ou em pó nulo. Por definição de uma linha só é nulo quando a última linha foi lida. linhas vazias são representadas por cadeias vazias. A fim de ignorar aqueles que você tem que verificar se a linha está vazia.

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

Você poderia cortar as linhas se pudessem conter espaços que você deseja evitar.

while ((line = br.readLine()) !=null){  
     if(!line.trim().isEmpty()) {
          list.add(line);
     } 
}
Respondeu 03/12/2019 em 00:24
fonte usuário

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