使用String.split()在双管道(||)上拆分字符串

Far*_*018 4 java split

我试图用双管(||)拆分字符串作为delimiter.String看起来像这样:

String str ="user@email1.com||user@email2.com||user@email3.com";
Run Code Online (Sandbox Code Playgroud)

我可以使用StringTokeniser将其拆分.javadoc表示不鼓励使用此类,而是将String.split视为选项.

StringTokenizer token = new StringTokenizer(str, "||");
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常.但是无法弄清楚为什么在string.split函数下面没有给出我预期的结果..

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

我哪里错了..?

gtg*_*ola 14

你必须|像这样逃避每一个人str.split("\\|\\|")

  • @CsBalazsHungary因为它是RegEx,你需要将`|`转义为`\ |`.但是因为RegEx是从字符串构建的,所以你需要另外转义\作为\\. (3认同)

Gij*_*iet 12

String.split()使用正则表达式.您需要转义要用作分隔符的字符串.

Pattern有一种方法可以帮到你,即Pattern.quote(String s).

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