gpt4 book ai didi

JAVA CSV 写空格不带引号

转载 作者:行者123 更新时间:2023-12-04 15:59:39 26 4
gpt4 key购买 nike

我正在使用 Apache Commons CSV 库来编写 CSV 文件。

提供给我的样本有一个奇怪的模式。

预期的示例输出:

  • 姓名及职务、电话、 Activity 、日期
  • “John Doe,官员”,,正在调查,2017 年 6 月 8 日
  • jack ,+123-4567,虚假指控,2017 年 6 月 4 日

可以看出,Name with designation 列可以有带逗号的值。所以他们需要被引用。但是,有些值有空格,例如电话号码,它只能是空格,或者操作列,其中值可以包含空格(中间或结尾)。

现在,当我使用 apache 公共(public)库编写 CSV 时,我将以下 CSVFormatCSVPrinter 类一起使用。

CSVFormat.EXCEL.withQuoteMode(QuoteMode.MINIMAL));

此配置提供了与样本最接近的输出。但是,空格或尾随空格的值,也就是说,即使没有逗号,也会被引用。

我的输出:

  • 姓名及职务、电话、 Activity 、日期
  • “John Doe,警官”,“”,正在调查中,2017 年 6 月 8 日
  • jack ,+123-4567,“虚假指控”,2017 年 6 月 4 日

我需要的是,当只有空格或末尾有空格,且值没有逗号时,引号不会出现。

Apache Commons 中是否有我遗漏的任何配置?或者是否有任何其他 CSV 库具有提供此输出的格式?

最佳答案

您可以使用 super-csv .接下来是 RFC-4180

 CsvListWriter c = new CsvListWriter(new PrintWriter(System.out), CsvPreference.STANDARD_PREFERENCE);
c.write(Lists.newArrayList(" Aa", " ", " John \"Doe\"", "Comma,", "test "));

c.flush();
c.close();

写:

 Aa, ," John ""Doe""","Comma,",test 

Maven 依赖:

<!-- https://mvnrepository.com/artifact/net.sf.supercsv/super-csv -->
<dependency>
<groupId>net.sf.supercsv</groupId>
<artifactId>super-csv</artifactId>
<version>2.4.0</version>
</dependency>

关于JAVA CSV 写空格不带引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50856475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com