Java 如果数据包含逗号,如何将其存储在csv中?

Java 如果数据包含逗号,如何将其存储在csv中?,java,algorithm,Java,Algorithm,如果任务是使用可能存在逗号的某些数据创建csv文件,有没有一种方法可以在以后不混淆哪个逗号是分隔符,哪个逗号是值的一部分 显然,我们可以使用不同的分隔符,替换所有出现的情况,或者用其他内容替换原始逗号,但是对于这个问题,我们假设修改原始数据不是一个选项,逗号是唯一允许的分隔符 你会怎么处理这样的事情?创建xls会更容易吗?您能推荐任何能够很好地处理此问题的java库吗?我认为最好的方法是使用Apache POI: 您可以轻松地创建XLS文档,而无需太多麻烦 但是,如果您确实需要CSV而不是XLS

如果任务是使用可能存在逗号的某些数据创建csv文件,有没有一种方法可以在以后不混淆哪个逗号是分隔符,哪个逗号是值的一部分

显然,我们可以使用不同的分隔符,替换所有出现的情况,或者用其他内容替换原始逗号,但是对于这个问题,我们假设修改原始数据不是一个选项,逗号是唯一允许的分隔符


你会怎么处理这样的事情?创建xls会更容易吗?您能推荐任何能够很好地处理此问题的java库吗?

我认为最好的方法是使用Apache POI: 您可以轻松地创建XLS文档,而无需太多麻烦


但是,如果您确实需要CSV而不是XLS,则可以使用引号将值括起来。这也可以解决问题。

我要么使用不同的分隔符,要么使用类似的库

一个真正的CSV阅读器应该能够处理这个问题;这些值应该用引号括起来,例如:

one,two,"a, b, c",four 一,二,“a,b,c”,四
…每项#6 in.

通常,您使用
作为分隔符,作为引号。因此,您的值将如下所示:

foo, 'bar, baz', iik, aje

虽然没有单一的CSV标准,但通常的惯例是将包含逗号的条目用双引号括起来(即

为下一个问题做准备:如果数据包含双引号,该怎么办?在这种情况下,它们通常被双引号对替换

虽然我不喜欢引用维基百科作为来源,但它们确实有一个很好的CSV格式综述

任务是创建一个csv文件


实际上,这是一项不可能完成的任务,因为不同的Microsoft产品使用了不同的格式(我承认有细微的不同),并将它们命名为“CSV”。由于大多数电子表格都可以读取(DSV)文件,您最好编写其中一个。

javacsv处理得相当好(使用“围绕值”),您阅读过CSV格式的文档吗?它认为这样的CASI通常看到像CSVs这样引用整个字段在单/双引号,以解决这个问题。不过,您需要对字段中的任何内容进行转义。是否引用了测试中包含数据的内容,如
123123、'abc,123123',a
?如果您担心这一点,可能是您做错了。使用一个能为您处理它的库。这就是Microsoft Excel的工作方式。这很完美。多谢各位