当我做以下事情时,我有点困惑:
String example1 = "Hello|World";
String[] splitRes;
splitRes = example1.split("|");
我没有得到分裂字符串
你好索引0
世界指数1
但如果我愿意的话
String example1 = "Hello:World";
String[] splitRes;
splitRes = example1.split(":");
然后它起作用..
为什么会这样?
答案 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("\\|");