Ява помоги! как читать строки в файле как абзац и считать слова

я хочу читать строки в файле как абзац. например, если есть строки текста без пробела между ними, он должен рассматривать его как 1 абзац, а затем я хочу подсчитать слова.

Пока он правильно считает слова, но не распознает строки текста как абзац. Java начинающий

Scanner file = new Scanner(new FileInputStream("/.../output.txt"));

int count = 0;

while (file.hasNextLine()) {
    String s = file.nextLine();

    count++;

    if(s.contains("#AVFC")){
        System.out.printf("There are %d words on this line ", s.split("\\s").length-1);
        System.out.println(count);
    }
}

file.close();

person JD14    schedule 10.03.2014    source источник
comment
stackoverflow.com/questions/1706775/ - возможный дубликат.   -  person Gorbles    schedule 10.03.2014


Ответы (1)


Если «абзац» определяется как «последовательность непустых строк», то делайте то же, что и для отдельных строк, но добавляйте их до тех пор, пока не дойдете до пустой строки (или конца файла), в какой момент у вас есть ваш счет для только что завершенного абзаца. Не забудьте сбросить сумму, когда закончите абзац, чтобы подготовиться к началу следующего. И вам может понадобиться иметь дело с несколькими пустыми строками подряд.

Обновление: вместо того, чтобы распечатывать количество слов в строке, сохраните это число в переменной, например wordsInLine. Если это 0, то вы закончили с абзацем (если только count не равно 0, что означает, что вы еще не начали абзац) — поэтому напечатайте count и сбросьте его. Если нет, это часть текущего абзац, поэтому добавьте его в count. Наконец, когда вы закончите работу с файлом, если count не равно 0, вы должны распечатать количество последнего абзаца.

person Scott Hunter    schedule 10.03.2014
comment
можно показать это в коде?. Я не уверен, как это работает, так как я новичок в java. - person JD14; 10.03.2014