Как я могу получить количество пустых строк с помощью LineNumberReader?

Я пытаюсь использовать LineNumberReader, чтобы получить количество пустых строк в файле. Однако мне не удается получить такую ​​информацию. следующий код, который я использую

LineNumberReader reader  = new LineNumberReader(new FileReader(this.file));
int cnt = 0;
String lineRead = "";
while ((lineRead = reader.readLine()) != null) {
  if(lineRead.length == 0){
    cnt++;
  }
}

reader.close();
System.out.println(cnt);

Кто-нибудь знает, как получить такую ​​информацию?


person ict1991    schedule 04.04.2012    source источник
comment
Возможный дубликат этого вопроса? stackoverflow .com/questions/4680588/   -  person Carlo    schedule 04.04.2012
comment
Я бы изменил это на if(lineRead.trim().length == 0){   -  person Andrew Thompson    schedule 04.04.2012
comment
@Carlo Я пробовал это, но все равно возвращает 0, как будто пустых строк нет, хотя на самом деле они есть   -  person ict1991    schedule 04.04.2012
comment
@Carlo Несмотря на то, что это вопрос без ответа, 1-й ответ содержит хорошую стратегию (повторяя то, что я предложил в комментарий).   -  person Andrew Thompson    schedule 04.04.2012
comment
я предполагаю, что строка 'lineRead.length == 0' никогда не оценивается как истинная. Добавьте строку печати перед оператором if и посмотрите, что возвращает readLine, когда она пуста.   -  person John Snow    schedule 04.04.2012
comment
@JimmyGustafsson Это или отладчик были бы очень полезны на данном этапе. Обратите внимание, что с System.out.println("'" + lineRead + "'"); все более понятно. Таким образом, такие вещи, как лишние пробелы и символы табуляции, становятся более понятными.   -  person Andrew Thompson    schedule 04.04.2012
comment
@AndrewThompson Да, это вопрос без ответа, но, как вы сказали, он дает несколько разных примеров того, как решить проблему.   -  person Carlo    schedule 04.04.2012
comment
спасибо за вашу помощь, я попробовал это с читателем буфера, и это сработало   -  person ict1991    schedule 04.04.2012


Ответы (1)


Попробуйте с

if(lineRead.isEmpty()){

or

if(lineRead.trim().isEmpty()){

если вы считаете пустой строку, содержащую только пробелы или табуляцию

person dash1e    schedule 04.04.2012