在apachecsv实现中是否有一个内置的特性,可以在读取csv时忽略头的大小写?
不久前,我们已经实现了将csv导出文件转换为sql的实用程序。为此,我们选择了apachecsv。到目前为止一切都很好,但现在我们有一个改变的要求。
我们处理的所有csv文件都必须包含头文件,现在我们应该以不区分大小写的方式读取这些头文件,这样我们的用户就不必在其中投入精力,观察他们创建的csv是否符合我们的头文件大小写要求。
代码示例:
for (CSVRecord record : subsidiaryRows) {
String name = record.get(Data.NAME));
其中data.name
public static final String NAME = "Name";
当用户在csv中使用“name”作为列标题,而不是使用大写“n”的“name”时,问题就显而易见了。
我跟踪了api和源代码,但找不到任何东西。有没有办法强迫csvrecord使用caseinsensitivemap进行Map或其他类似的操作?
3条答案
按热度按时间ycggw6v21#
此功能作为csv-159添加到apachecommons csv1.3中
已提交修订版1708685。
cvxl0en22#
我认为你必须处理csv头你的方便,在你解析csv文件之前
apache-commons-csv
,您可以使用randomaccessfile来覆盖第一行中的大小写(标题)ps:我认为用其他方法很难做到这一点,因为它是一个封闭的api(每个类都是最终的,headersMap返回一个内部headersMap的副本)
u4vypkhs3#
我没有使用apachecsv,但是下面的内容有帮助吗