java - 如何判断是否已使用 BufferedReader 读入空行?

标签 java io whitespace bufferedreader

我正在阅读格式如下的文本文件

word
definiton

word
definition
definition

word
definition

所以我需要根据我到达那些空行的时间来不断尝试我是否在定义中。问题是,BufferedReader 丢弃了 \n 字符,并且以某种方式将该空行与 String "" 进行比较并没有像我想象的那样注册。我该怎么做。

最佳答案

  1. 确保使用:"".equals(myString)(null 安全)而不是 myString == ""
    • 1.6之后,可以使用myString.isEmpty()(不是null-safe)
  2. 您可以使用 myString.trim() 在上述检查之前去除多余的空格

这是一些代码:

public void readFile(BufferedReader br) {
  boolean inDefinition = false;
  while(br.ready()) {
    String next = br.readLine().trim();
    if(next.isEmpty()) {
      inDefinition = false;
      continue;
    }
    if(!inDefinition) {
      handleWord(next);
      inDefinition = true;
    } else {
      handleDefinition(next);
    }
  }
}

关于java - 如何判断是否已使用 BufferedReader 读入空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13706466/

相关文章:

java - 如何定义表格的垂直对齐方式

节点值内部的 Java XML 节点

c - 从文本文件读取并写入二进制文件

C++使用不同的流读取和写入同一文件

java - GWT 和异步文件上传 - 帮助

language-agnostic - 如何从当前目录中的所有文件名中删除空格

没有空格的 Antlr3 匹配标记

java - 如何使用在 Java 中具有默认命名空间的 XPath 检索 XML 数据?

rust - 使用 Pest.rs,如何在关键字后允许不重要的空格?

java - 使用 HibernateTemplate 的 findByNamedParam 函数进行分页