0

可能重复:
用 | 分割字符串 java中的分隔符

当我执行以下操作时,我有点困惑:

String example1 = "Hello|World";
String[] splitRes;

splitRes = example1.split("|");

我没有得到拆分字符串
Hello index 0
World index 1

但如果我这样做

 String example1 = "Hello:World";  
 String[] splitRes;

 splitRes = example1.split(":");  

然后它起作用了..
为什么会这样?

4

4 回答 4

6

split 使用正则表达式,您必须转义管道,因为它是正则表达式中的“或”运算符:

example1.split("\\|");
于 2012-05-24T09:39:57.957 回答
2

String.split()期望正则表达式作为参数,|是正则表达式中的元字符“OR”。你必须用 \ 逃脱(所以它变成了\|)。请注意,在 Java 字符串中,您必须将其写为 \\ 因为 \ 也是 Java 字符串中的转义字符。

于 2012-05-24T09:40:57.037 回答
1

| 用于正则表达式,.split也使用正则表达式,因此您需要对其进行转义。

String str = ""Hello:World"; ";
String[] temp;
String delimiter = "\\|";
SepString= str.split(delimiter);
  /* print test */
for(int i =0; i < SepString.length ; i++)
System.out.println(SepString[i]);
于 2012-05-24T09:44:32.547 回答
0

Split 将正则表达式作为参数,| 是一个正则表达式符号。您必须使用\java 字符串中的其中两个来转义它:\\

.split("\\|");
于 2012-05-24T09:40:39.413 回答