次のことを試してください。
String[] = "abcde|12345|xyz".split("|");
結果は (少なくとも私は..) 予想通りにはなりません。
他のキャラクターを使用しても問題ないようです。
String[] = "abcde,12345,xyz".split(",");
では、パイプの何が特別なのでしょうか?
Java String.split() は RegExp を想定しており、パイプ文字は、コンマ以外の RegExp で特別な意味を持ちます。次のことを試してください。
String[] = "abcde|12345|xyz".split("\\|");
split
メソッドは正規表現と "|" を期待しています。正規表現の世界では特殊文字です: http://www.tutorialspoint.com/java/java_string_split.htm