Open-CSV features
I recommed open-csv, It’s a nice and aweasome package :)
- Arbitrary numbers of values per line. (允許一行裡面有多個 elements, 避免跟 headers 對應問題)
- Ignoring commas in quoted elements. (忽略 element 裡面的逗號, 避免誤判)
- Handling quoted entries with embedded carriage returns (i.e. entries that span multiple lines). (忽略 element 裡面的換行符號)
- Configurable separator and quote characters (or use sensible defaults). (可自定義 separator 與 quote 切分 csv 的字符)
Ugly data
雖然 open-csv 可以協助處理 element 裡面的 逗號, 換行 的情境, 但一些狀態仍可能導致 open-csv 判讀錯誤失敗, 以下方的例子來說, \"
與 say "don’t
就會違反 open-csv 的 parsing rule, 導致 exception 發生, 如果是用 try catch 去處理, 就會造成資料缺漏, 違反資料正確性。
"id","title","member","msg" |
Clean data
初步的想法就是, 把資料清洗一次, 先移除掉換行符號, 再把會影響 open-csv 處理的因素做 replace()
處理。
|
再重新換行。
|
Final data
"id","title","member","msg" |