ArrayList пропуск индекса

голоса
-1

Я хочу, чтобы мой массив пропускать пустые индексы. Это формат текстового файла.

some text

1
2
3
4

2
5
4
6

5
7
6
8

Вот мой код

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

Я думал, как я настроить, как мой код добавляет строки игнорирует пустые из них. Также интересно, почему размер списка 16, когда есть только 15 индексов. Мой вопрос, как я могу игнорировать пустые строки текста в моем файле.

Задан 03/12/2019 в 00:03
источник пользователем
На других языках...                            


1 ответов

голоса
0
while ((line = br.readLine()) !=null){  
     list.add(line);
}

Это только проверяет, является ли считанная строка является нулевым ЗАВИСИМОСТИ. По определению линии только нуль, когда последняя строка была прочитана. Пустые строки представляются пустыми строками. Для того, чтобы пропустить те, которые вы должны проверить, является ли строка пустой.

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

Можно обрезать строки, если они могут содержать пробелы, которые вы хотите избежать.

while ((line = br.readLine()) !=null){  
     if(!line.trim().isEmpty()) {
          list.add(line);
     } 
}
Ответил 03/12/2019 в 00:24
источник пользователем

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