The Java official documentation states:
The string \"boo:and:foo\", for example, yields the following results with these expressions
Regex Result
:
You need
test.split("\\|");
split uses regular expression and in regex | is a metacharacter representing the OR operator. You need to escape that character using \ (written in String as "\\" since \ is also a metacharacter in String literals and require another \ to escape it).
You can also use
test.split(Pattern.quote("|"));
and let Pattern.quote create the escaped version of the regex representing |.