gpt4 book ai didi

java - OpenCSV 不转义引号 (")

转载 作者:行者123 更新时间:2023-11-30 11:02:29 29 4
gpt4 key购买 nike

我有一个 CSV 文件,其中引号内有定界符或未闭合的引号,如何让 CSVReader 忽略引号内的引号和定界符。例如:

123|Bhajji|Maga|39|"I said Hey|" I am "5|'10."|"I a do "you"|get that"

这是文件的内容。

下面的程序读取csv文件。

@Test
public void readFromCsv() throws IOException {
FileInputStream fis = new FileInputStream(
"/home/netspurt/awesomefile.csv");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
CSVReader reader = new CSVReader(isr, '|', '\"');

for (String[] row; (row = reader.readNext()) != null;) {
System.out.println(Arrays.toString(row));
}
reader.close();
isr.close();
fis.close();
}

我得到的 o/p 是这样的。

[123, Bhajji, Maga, 39, I said Hey| I am "5|'10., I am an idiot do "you|get that]

you 之后发生了什么事

编辑:Opencsv 依赖项 com.opencsv 打开csv 3.4

最佳答案

来自 com.opencsv:opencsv 的源代码:

  /**
* Constructs CSVReader.
*
* @param reader the reader to an underlying CSV source.
* @param separator the delimiter to use for separating entries
* @param quotechar the character to use for quoted elements
* @param escape the character to use for escaping a separator or quote
*/

public CSVReader(Reader reader, char separator,
char quotechar, char escape) {
this(reader, separator, quotechar, escape, DEFAULT_SKIP_LINES, CSVParser.DEFAULT_STRICT_QUOTES);
}

参见 http://sourceforge.net/p/opencsv/source/ci/master/tree/src/main/java/com/opencsv/CSVReader.java

有一个带有附加参数转义的构造函数,它允许转义分隔符和引号(根据 javadoc)。

关于java - OpenCSV 不转义引号 ("),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30757940/

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