gpt4 book ai didi

java - Univocity - 如何定义 "format auto-detection"上分隔符的优先顺序?

转载 作者:行者123 更新时间:2023-11-30 05:31:54 25 4
gpt4 key购买 nike

我正在尝试使用 Univocity format auto-detection用于解析此 CSV 表:

HEADER1, HEADER2, HEADER3
11, 12, 13
21, 22, 23
31, 32, 33

如您所见,逗号 ',' 和空格 ' ' 的数量相同。问题在于,查找分隔符的启发式方法优先考虑“”而不是“,”字符。

因此在这种情况下检测到的分隔符是空格“”。然后,单元格的值是错误的,因为逗号被视为值的一部分:

我看到有一个功能setDelimiterDetectionEnabled按优先级顺序定义分隔符,但我无法使其工作。

我这样使用它:setDelimiterDetectionEnabled(true, ',', ' '),但仍然选择空格作为分隔符。

如果我在 CSV 表中删除 1 个空格(因此逗号多于空格),则选择逗号作为分隔符。

这是代码,是 scala,但我认为这不相关,因为该库是用 java 编写的:

val settings = new CsvParserSettings
settings.setDelimiterDetectionEnabled(true, ',', ' ')
val parser = new CsvParser(settings)
val spaceAndCommaTable = new File("/home/pr/SPACE_AND_COMMA.csv")
val parsed = parser.parseAll(spaceAndCommaTable, "UTF-8")
val format = parser.getDetectedFormat

我希望 format.getDelimiter 包含逗号“,”,但实际的分隔符是空格“”

最佳答案

这里是该库的作者。我刚刚修复了这个问题,并将于明天发布最终版本 2.8.3,其中包括为此工作所需的调整。为了进行测试,您已经可以使用最新的 2.8.3-SNAPSHOT。

谢谢

关于java - Univocity - 如何定义 "format auto-detection"上分隔符的优先顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57357387/

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