Метод
split принимает в качестве входного выражения регулярное выражение. Труба является специальным символом для регулярного выражения, поэтому, если вы хотите использовать его, вам нужно избежать специального символа. Ther - несколько решений:
Вам нужно избежать символа «pipe»
str.split("\\|");
Или вы можете использовать вспомогательную цитату:
str.split(Regexp.quote("|"))
Или между sqares:
str.split("[|]");