2013-08-28 17 views
0

從supercsv中的csv中清理字段的最佳方法是什麼?例如First_Name列:修剪字段,大寫第一個字母,刪除各種字符(引號,逗號,星號等)。是否要編寫像FmtName()這樣的自定義CellProcessor?也許另一個FmtEmail()降低一切,刪除某些無效字符?使用SuperCSV對cell值進行消毒處理

回答

1

我想你要問的問題是:

「是更好地定製Cell處理器做所有 轉換爲列寫,或者把多個可重複使用的處理器 在一起?」

例如,你的名字例如,你可以之一:

一)寫一個custom cell processor其修剪,資本化,在一個處理器全部換成:

new ParseFirstName() 

B)鏈在一起可重複使用的處理器(包括現有的Super CSV處理器和一個新的Capitalize定製單元處理器,稱爲StringUtils.capitalize()

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

我認爲這是真的取決於個人喜好。在b)中定義單元處理器可能非常冗長,但這意味着您可以在一個地方看到所有列的所有轉換/驗證。另一方面,爲每列定義一個自定義單元格處理器使得您的單元處理器設置非常乾淨,但是最終可能會出現重複代碼(例如,如果您想要將多列大寫),並且看不到所有列一次轉換。你也會有更多的類(更多的代碼)。

+0

結束了兩種方法的結合,概括了可能是什麼(像Capitalize)和創建SanitizeFirstName做獨特的事情,如脫掉先生/太太/小姐等。謝謝獵犬! – xref