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

时间:2013-03-20 13:12:47

标签: java split

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

String str ="user@email1.com||user@email2.com||user@email3.com";

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

StringTokenizer token = new StringTokenizer(str, "||");

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

String[] strArry = str.split("\\||");

我哪里错了..?

5 个答案:

答案 0 :(得分:14)

您必须像|

一样逃避每一个str.split("\\|\\|")

答案 1 :(得分:12)

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

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

String[] split = str.split(Pattern.quote("||"));

答案 2 :(得分:3)

试试这个:

String[] strArry = str.split("\\|\\|");

答案 3 :(得分:0)

你也可以尝试一下......

String[] splits = str.split("[\\|]+");

请注意,您必须转义管道,因为它在正则表达式中具有特殊含义,而String.split()方法需要正则表达式参数。

答案 4 :(得分:0)

尝试

String yourstring="Hello || World";
String[] storiesdetails = yourstring.split("\\|\\|");