我从当前有一个段落的单独文件中获取输入。我将段落中的每个单词存储到一个列表中,然后使用以下方法迭代每个单词:
for(字符串单词:单词)
然而,这个迭代器会遍历每个 WORD。如果我的输入文件中有两个由空行分隔的段落,我如何识别这个 for 循环迭代器下的空行?我的想法是,遍历单词显然与遍历行不同,所以我不确定。
我从当前有一个段落的单独文件中获取输入。我将段落中的每个单词存储到一个列表中,然后使用以下方法迭代每个单词:
for(字符串单词:单词)
然而,这个迭代器会遍历每个 WORD。如果我的输入文件中有两个由空行分隔的段落,我如何识别这个 for 循环迭代器下的空行?我的想法是,遍历单词显然与遍历行不同,所以我不确定。
一个空行遵循模式:
\n\n
\r\n\r\n
\n -whitespace- \n
etc
跟随模式的一个词
-whitespace-nonwhitespace-whitespace-
非常不同的模式。因此,使用单词的定义循环遍历某些内容永远不会奏效。
您可以使用 Java 扫描程序逐行查看文件。
public class LineScanner {
public List<String> eliminateEmptyLines(String input) {
scanner Scanner = new Scanner(input);
ArrayList<String> output = new ArrayList<>();
while (scanner.hasNextLine) {
String line = scanner.nextLine;
boolean isEmpty = line.matches("^\s*$");
if !(isEmpty) {
output.add(line);
}
}
return output;
}
}
以下是正则表达式的String.matches
工作原理:如何使用正则表达式检查一行是否为空白
以下是 javadoc Scanner
:http ://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html