2013-03-20 76 views
4

我试图分裂与双管串(||)作为delimiter.String看起来是这样的:分裂的双管(||)的字符串

String str ="[email protected]||[email protected]||[email protected]"; 

我能使用StringTokeniser.The的javadoc分裂它说,使用这个类气馁,而是看作为String.split选择。

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

上面的代码工作fine.But无法弄清楚为什么下面string.split功能不给我预期的结果..

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

我要去哪里错了..?

+0

您的预期结果是什么? – Alepac 2013-03-20 13:15:52

回答

11

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

格局已经为你做这一点,即Pattern.quote(String s)的方法。

13

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

+0

是不是“\ | \ |”?我错了吗? – CsBalazsHungary 2013-03-20 13:15:35

+0

想知道,为什么你需要在java中逃避'|'? – 2013-03-20 13:16:12

+0

@CsBalazsHungary还必须逃脱''\\以来也是元字符 – gtgaxiola 2013-03-20 13:16:13

3

试试这个波纹管:

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

你可以试试这个太...

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

请注意,你必须逃离管,因为它在正则表达式与String.split有特殊的含义()方法需要正则表达式参数。