从 supercsv 中的 csv 清理字段的最佳方法是什么?例如 First_Name 列:修剪字段、首字母大写、删除各种字符(引号、逗号、星号等)。是写一个像 FmtName() 这样的自定义 CellProcessor 吗?也许另一个 FmtEmail() 将所有内容小写,删除某些无效字符?
问问题
1238 次
1 回答
2
我认为您要问的问题是:
“是编写一个自定义单元处理器来为一列执行所有转换,还是将多个可重用处理器链接在一起更好?”
例如,对于您的名字示例,您可以:
a) 编写一个自定义单元处理器,在一个处理器中修剪、大写和替换所有内容:
new ParseFirstName()
b) 将可重用的处理器链接在一起(包括现有的 Super CSV 处理器和Capitalize
调用StringUtils.capitalize()的新自定义单元处理器)
new Trim(new Capitalize(new StrReplace("[\",\\*]", "")))
我认为这真的取决于个人喜好。定义单元处理器b)
可能非常冗长,但这意味着您可以在一个地方查看所有列的所有转换/验证。
另一方面,为每一列定义一个自定义单元处理器会使您的单元处理器设置非常干净,但您最终可能会得到重复的代码(例如,如果您想将多列大写)并且您无法一次看到所有转换. 您还将拥有更多类(更多代码)。
于 2013-08-28T23:25:12.443 回答