我試圖解析一些管道分隔的記錄。我有這樣的代碼:Java的String.split()刪除尾部空條目
public class Test {
public static void main(String[] args) throws Exception {
String[] components = "EN|1056209|||KA3NDL|L|||||||||||||||||||||".split("\\|");
System.out.println(java.util.Arrays.toString(components));
}
}
你希望它打印:
[EN, 1056209, , , KA3NDL, L, , , , , , , , , , , , , , , , , , , , , ]
但事實並非如此。它打印:
[EN, 1056209, , , KA3NDL, L]
訪問components
陣列的length
屬性顯示其已被正確打印。
有人知道爲什麼這是/解決方法嗎?
編輯:
這工作:
public class Test {
public static void main(String[] args) throws Exception {
String[] components = "EN|1056209|||KA3NDL|L|||||||||||||||||||||".split("\\|", -1);
System.out.println(java.util.Arrays.toString(components));
}
}
我不希望它打印出您期望它打印的內容 - absolu管道之間沒有任何關係。 – 2012-08-16 18:05:54
AnthonyGrist,謝謝,我去讀了更近的文檔並弄清楚了。 – 2012-08-16 18:14:30
尼克,而不是以非標準的方式編輯問題和它的標題,爲什麼你不寫一個自己的答案?你甚至可以接受它(延遲之後)。 – 2012-08-16 18:58:01