2015-01-14 2 views
-1

Привет Я искал, чтобы получить помощь при пропуске null строк, я искал ответы, но я не смог их найти. Это код, который я пытаюсь использовать:Как пропустить нулевые строки в java?

BufferedReader in = new BufferedReader(new FileReader(newest)); 
    String line = ""; 
    while (true) { 
     if ((line = in.readLine()) == null) { 
+2

Что вы подразумеваете под «нулевыми» линиями? Пустая строка '' '' или строка, содержащая слово «null» или строку, где readLine возвращает «null»? – EWit

+0

Линия, которая пуста и не имеет пробелов нулевую строку – Austin

+0

Возможно, я ошибаюсь, но 'readLine' возвращает только« null »в конец потока. В этом случае вы не можете просто «пропустить» его, потому что больше нет ввода. – EWit

ответ

0

Линии не будут пустыми, они могут быть пустыми. Что я хотел бы сделать, это проверить, если он пуст:

if ((line = in.readLine()) != null) { 
    line = line.trim(); 

    if (line.isEmpty()) { 
    } 
} 
+1

Лучше сначала проверить значение null, а затем вызвать 'trim()' в строке для удаления пробела, а затем вызвать 'isEmpty()', чтобы проверить, нет ли текста. –

+0

Я исправил это, надеюсь, это хорошо сейчас ... –

+0

Наверное, если ваш первый оператор if вместо этого? Если null возвращен, конец потока достигнут. – JamesB

1

Я бы ожидать, что код выглядит примерно так:

String line; 
while ((line=in.readLine())!=null) { 
    if (!line.isEmpty()) { 
     // do stuff 
    } 
} 

Обычно я trim каждая строка перед проверкой, если она пуста, но вы говорите, что хотите исключить «строку, которая пуста и не имеет пробелов», что подразумевает, что вы хотите включить строки, которые являются просто пространством.

Если вы сделать хотите, чтобы пропустить строки, которые все пробелы, вы можете сделать это:

String line; 
while ((line=in.readLine())!=null) { 
    if (!line.trim().isEmpty()) { 
     // do stuff 
    } 
} 

Точка условия while является то, что BufferedReader вернется null, когда ввод закончен, так что должно привести к завершению цикла.

+0

Это больше похоже на – JamesB

0

При чтении из этого потока, null будет встречен только в конце потока (файл в этом случае). Если вы ищете пустую/пустую строку, этот тест находится в цикле (ниже).

Обратите внимание, что String.trim() не обрезает сам объект, он возвращает обрезанную строку. Метод Equals обычно должен использоваться для проверки равенства Object (например, String).

BufferedReader in = new BufferedReader(new FileReader(newest)); 
String line = ""; 

//Line below keeps looping while the reader return a valid line of text. 
//If the end of stream (file in this case) has been reached, you'll get null. 
while ((line=in.readLine())!=null) { 
    //line below tests for empty line 
    if(line.trim().equals(""){ 

    }  
} 
Смежные вопросы