0

我从当前有一个段落的单独文件中获取输入。我将段落中的每个单词存储到一个列表中,然后使用以下方法迭代每个单词:

for(字符串单词:单词)

然而,这个迭代器会遍历每个 WORD。如果我的输入文件中有两个由空行分隔的段落,我如何识别这个 for 循环迭代器下的空行?我的想法是,遍历单词显然与遍历行不同,所以我不确定。

4

1 回答 1

0

一个空行遵循模式:

\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 Scannerhttp ://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html

于 2013-10-09T22:11:41.203 回答