我如何读取多行作为段落

时间:2014-03-11 20:23:36

标签: java

我想将行序列计为段落,即它应该计算它们之间没有空格的行作为1行,例如(段落)。到目前为止,我的代码计算每一行而不知道行的顺序应该算作1.请问如何解决这个问题?

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

     int count = 0;

     while (file.hasNextLine()){
         file.nextLine();
         count++;
     }
    System.out.println(count);
    file.close();

2 个答案:

答案 0 :(得分:3)

您可以设置一个小型状态机,假设从空行到非空行表示您在新段落中显示:

boolean lastWasText = false;
int paragraphCount = 0;
while (file.hasNextLine()) {
  boolean thisIsText = file.nextLine().length() > 0;
  if (!lastWasText && thisIsText) paragraphCount++;
  count++;
  lastWasText = thisIsText;
}

如果您不想要计算所有空格的行数,请在trim()之后和nextLine()之前添加length()

答案 1 :(得分:0)

要保留您的代码,它应该是

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

int count = 0;

while (file.hasNextLine()){
  String line = file.nextLine();
  if (line.trim().length() > 0) {
    count++;
  }
}
System.out.println(count);
file.close();