使用SuperCSV消毒细胞值

时间:2013-08-28 18:30:52

标签: java supercsv

在supercsv中从csv清理字段的最佳方法是什么?例如,First_Name列:修剪字段,大写第一个字母,删除各种字符(引号,逗号,星号等)。是编写像FmtName()这样的自定义CellProcessor吗?也许另一个FmtEmail()降低了所有内容,删除了某些无效字符?

1 个答案:

答案 0 :(得分:1)

我认为你要问的问题是:

  

“编写一个完成所有操作的自定义单元处理器是否更好   列的转换,或链接多个可重用处理器   一起?“

例如,使用您的名字示例,您可以:

a)写一个custom cell processor,在一个处理器中修剪,大写并替换所有:

new ParseFirstName()

b)将可重复使用的处理器(包括现有的超级CSV处理器和一个调用StringUtils.capitalize()的新Capitalize自定义单元处理器)链接在一起

new Trim(new Capitalize(new StrReplace("[\",\\*]", "")))

我认为这完全取决于个人喜好。在b)中定义单元格处理器可能非常详细,但这意味着您可以在一个位置查看所有列的所有转换/验证。

另一方面,为每个列定义一个自定义单元处理器会使您的单元处理器设置非常干净,但最终可能会出现重复的代码(例如,如果您想要将多个列大写)并且您无法看到所有立刻转换。你还会有更多的课程(更多的代码)。