在任何人得出结论之前,是的,我知道需要转义竖杠符号 :-)
...并且在我的代码中,我已经这样做了:
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
是该文件中的第一行,在我的代码中,它会因索引超出范围而崩溃。调试后,我意识到了发生了什么,并添加了guava Splitter
行作为健全性检查。使用splitter,我得到了预期的列表。
为什么guava splitter和原生的split结果不同?
split("\\|", -1);
。 - Sotirios Delimanolis