【问题标题】:Java: reading from txt file with quotation marksJava:从带有引号的txt文件中读取
【发布时间】:2012-10-06 16:28:21
【问题描述】:

我试图通过网络搜索,但没有找到我的问题的答案。我有一个带有一行的 csv 文件:"Good morning" he said。我的程序只是从文件中读取文本并打印出来:

BufferedReader in = new BufferedReader(new FileReader("XXXX/myfile.csv"));
String line;
while ((line = in.readLine()) != null) {
    System.out.println(line);
}

但是,输出的引号比原来的多:

"""Good morning"" he said."

你能告诉我如何转义这些引号,以便它像在文件中一样打印出来吗?

【问题讨论】:

  • 如果我们将line0 替换为line,输出似乎是He said, "Good morning" he said
  • @Adel:我知道那个帖子,我只是想打印为原件
  • 您的输入不是 CSV 文件,您的代码与您呈现的输出无关。请说明您正在尝试做什么以及您实际拥有的代码。
  • 不可能按原样回答,因为如果文件包含您声称的内容,并且代码与您声称的一样,则字符串将按照文件中存在的方式精确打印。

标签: java


【解决方案1】:

您有一个 CSV 文件,我怀疑该 CSV 文件的字段分隔符是 "。这些额外的引号将保存在 CSV 文件中,但在您使用 Excel 或其他电子表格类型程序打开它时不会显示。通过在记事本等文本编辑器中打开来检查它并查看。

【讨论】:

  • 你是对的,我从 Windows 机器复制了 CSV 文件,然后在 Mac 中编辑,所以分隔符会以某种方式发生变化,有些甚至被隐藏了。谢谢一百万。
【解决方案2】:

简单修复:

str.replaceAll("\\\"{2}", "\"");

【讨论】:

  • @DaveNewton - OP 在他的原始帖子中将“正则表达式”列为标签
猜你喜欢
  • 2017-06-24
  • 2023-02-22
  • 1970-01-01
  • 1970-01-01
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-03
相关资源
最近更新 更多