在Java中拆分字符串

Cod*_*Guy 1 java string split

我有一个字符串如下

String s = "3|4||5 9|4 0|0 4 8|..."
Run Code Online (Sandbox Code Playgroud)

我想根据"|"外观拆分它.因此,分裂应该返回

["3","4","5 9","4 0,"0 4 8",...]
Run Code Online (Sandbox Code Playgroud)

但是,在Java中,

s.split("|") = [, 3, |, 4, ...]
Run Code Online (Sandbox Code Playgroud)

换句话说"",它似乎是由角色分裂.怎么了?

rge*_*man 5

|字符在正则表达式中具有特殊含义,因此必须使用反斜杠对其进行转义.然后你必须为Java反转掉反斜杠本身.尝试:

s.split("\\|")
Run Code Online (Sandbox Code Playgroud)

该类JavadocsPattern有很多关于正则表达式中特殊字符的细节.请参阅该页面中的"逻辑运算符"部分|.