超级CSV和分组分隔符

时间:2014-04-22 14:59:47

标签: java bigdecimal supercsv

我们正在尝试按以下格式阅读包含数字的文件:123.456,78according to Wikipedia this is usual for some countries - e.g. Germany)。

Super CSV配置为将列解析为BigDecimal:new ParseBigDecimal(new DecimalFormatSymbols(GERMANY))

适用于1k以下的数字,但分组分隔符处理不当:'1.999,00' could not be parsed as a BigDecimal

我已经看到可以写一个custom cell processor,但也许有人知道是否有更简单的方法,或者这是否是Super CSV中的已知错误。

更新

Super CSV已集成该功能,并将其与2.2.0版一起发布。它适用于通过DecimalFormatSymbols参数提供的所有分组分隔符。

1 个答案:

答案 0 :(得分:2)

ParseBigDecimal(2.2.0之前)仅使用提供的DecimalFormatSymbols(不是分组分隔符)中的小数分隔符。它不是一个错误,只是当前实现的限制。

您可以在StrReplace之前链接ParseBigDecimal(即将"."替换为""),这样可以解决您的问题(快速)。

我认为ParseBigDecimal实际上应该为你做这件事。 更新:自版本2.2.0以来也是如此

就像你说的那样,你也可以自己编写自己的细胞处理器:)