例如,如果文件中包含以下文本行:
这是一个例子。这是一个例子。
这是一个例子。这是一个例子。这是一个例子
这是一个示例,这是一个示例,这是一个示例,这是一个示例,这是一个示例,这是一个示例,这是一个示例,这是一个示例,这是一个示例。
我希望能够将这些行计为3段。现在我的代码将其计为4段,因为它不知道段落何时开始和结束。
Scanner file = new Scanner(new FileInputStream("../.../output.txt"));
int count = 0;
while (file.hasNextLine()) { //whilst scanner has more lines
Scanner s = new Scanner(file.nextLine());
if(!file.hasNext()){
break;
}
else{
file.nextLine();
count++;
}
s.close();
}
System.out.println("Number of paragraphs: "+ count);
file.close();
这是我到目前为止所拥有的。它读取文本行,并将每行视为单个段落。
我希望它将它们之间没有任何空行的文本行视为1段并计算文件中的所有段落。
答案 0 :(得分:0)
BufferedReader in = new BufferedReader(new FileReader("output.txt"));
String line = in.readLine();
int count = 0;
StringBuilder paragraph = new StringBuilder();
while (true) {
if (line==null || line.trim().length() == 0) {
count++;
System.out.println("paragraph " + count + ":" + paragraph.toString());
paragraph.setLength(0);
if(line == null)
break;
} else {
paragraph.append(" ");
paragraph.append(line);
}
line = in.readLine();
}
in.close();
System.out.println("Number of paragaphs: "+ count);
答案 1 :(得分:0)
您将无法使用扫描仪查看空格或换行符。 nextLine()
方法消除了\ n's。
您需要使用读取文件字节的类和方法,以便检测空格和换行符。
尝试使用read()
的{{1}}方法。