我想将文件中的行读作段落。例如,如果文本行之间没有空格,则应将其视为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();
答案 0 :(得分:1)
如果“段落”被定义为“一系列非空白行”,那么就像你为个别行所做的那样,但是将它们加起来直到你得到一个空白行(或文件末尾) ),此时您已计算刚刚完成的段落。记得在完成一个段落时重置总和,为下一个段落的开始做好准备。而且您可能需要连续处理多个空白行。
更新:不是打印出一行中的字数,而是将该数字保存到变量中,例如wordsInLine
。如果它是0,那么你已经完成了一个段落(除非count
为0,这意味着你还没有开始一个段落) - 所以打印你的count
并重置它..如果不是,它是当前段落的一部分,因此将其添加到count
。最后,一旦你完成文件,如果count
不是0,你必须打印最后一段的计数。