围绕'|'拆分java中的字符串 字符

Kri*_*sic 1 java string split

我有这个

String str = "a,pnp,a|pnp,lab2|pnp,a|pnp,lab2,utr,utr";
String[] strings = str.split("|");
Run Code Online (Sandbox Code Playgroud)

这段代码不会围绕'|'拆分 相反,它会分割每个字符

strings[0] == "a";
strings[1] == ",";
Run Code Online (Sandbox Code Playgroud)

等等.

如何让这个工作得到

strings[0] == "a,pnp,a"
strings[1] == "pnp,lab2"
...
Run Code Online (Sandbox Code Playgroud)

MBy*_*ByD 6

split()采用正则表达式,并|保留为正则表达式OR,因此您需要将其转义:

String[] strings = str.split("\\|");
Run Code Online (Sandbox Code Playgroud)

甚至更好:

String[] strings = str.split(Pattern.quote("|"));
Run Code Online (Sandbox Code Playgroud)