Java String.split mehod效果不好

时间:2012-05-24 09:38:11

标签: java string string-split

  

可能重复:
  Split string with | separator in java

当我做以下事情时,我有点困惑:

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

splitRes = example1.split("|");

我没有得到分裂字符串
 你好索引0
 世界指数1

但如果我愿意的话

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

 splitRes = example1.split(":");  

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

4 个答案:

答案 0 :(得分:6)

split使用正则表达式,你必须逃避管道,因为它是"或"正则表达式中的运算符:

example1.split("\\|");

答案 1 :(得分:2)

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

答案 2 :(得分: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]);

答案 3 :(得分:0)

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

.split("\\|");