在supercsv中,从csv中净化字段的最佳方法是什么?例如,First_Name列:修剪字段,大写第一个字母,删除各种字符(引号、逗号、星号等)。是编写像FmtName()这样的自定义的FmtName()吗?也许另一个用于FmtEmail()的方法可以降低所有内容,删除某些无效字符?
发布于 2013-08-28 23:25:12
我想你想问的问题是:
“最好是编写一个自定义单元处理器来完成列的所有转换,还是将多个可重用处理器链接在一起?”
例如,使用您的名字示例,您可以:
( a)在一个处理器中编写一个裁剪、大写和替换全部的自定义单元处理器:
new ParseFirstName()( b)将可重用处理器(包括现有的超级CSV处理器和调用StringUtils.capitalize()的新的StringUtils.capitalize()自定义单元处理器)链接在一起。
new Trim(new Capitalize(new StrReplace("[\",\\*]", "")))我认为这真的取决于个人喜好。像在b)中那样定义单元处理器可能非常冗长,但这意味着您可以在一个地方看到所有列的所有转换/验证。
另一方面,为每个列定义一个自定义单元处理器可以使您的单元处理器设置非常干净,但是您可能最终会得到重复的代码(例如,如果您想将多个列大写),并且您不能同时看到所有的转换。您还将拥有更多的类(更多的代码)。
https://stackoverflow.com/questions/18495603
复制相似问题