5

我试图用双管道(||)作为分隔符来分割字符串。字符串看起来像这样:

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("\\||");

我哪里错了..?

4

5 回答 5

16

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

Pattern 有一种方法可以为您执行此操作,即Pattern.quote(String s).

String[] split = str.split(Pattern.quote("||"));
于 2013-03-20T13:17:24.657 回答
15

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

于 2013-03-20T13:14:21.430 回答
4

试试这个:

String[] strArry = str.split("\\|\\|");
于 2013-03-20T13:16:06.397 回答
0

你也可以试试这个...

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

Please note that you have to escape the pipe since it has a special meaning in regular expression and the String.split() method expects a regular expression argument.

于 2013-03-20T13:26:20.553 回答
0

Try this

String yourstring="Hello || World";
String[] storiesdetails = yourstring.split("\\|\\|");
于 2019-08-16T06:31:34.570 回答