在任何人跳到結論,是的,我意識到需要逃生管道符號:-)分裂的Java中的管道產生不同的結果
...在我的代碼,我也做所以:
String line = "C0000005|A13433185|SCUI|RB|C0036775|A7466261|SCUI||R86000559||MSHFRE|MSHFRE|||N||"
line = line.trim();
String[] columns_array = line.trim().split("\\|"); // length = 15
List<String> columns_list = Splitter.on("|").splitToList(line); // size = 17
我解析一個巨大的文件(〜5GB),每一行是豎線分隔,且上述line
是在該文件中,在我的代碼與索引出界失誤崩潰之首。經過調試,我意識到發生了什麼,並添加番石榴Splitter
線只是一個健全的檢查。使用分離器,我得到預期的列表。
爲什麼番石榴拆分器和原生拆分的結果不同?
旁邊的問題:是您的文件CSV使用dif不定界符?可以爲您節省一些使用CSV庫的麻煩。 – jpmc26 2015-01-20 23:15:36
我得到15和17. – 2015-01-20 23:18:28
使用'split(「\\ |」,-1);'。 – 2015-01-20 23:18:44