考虑以下简单的代码行:
public class Main {
public static void main(String[] args) {
String string = "Lorem,ipsum,dolor,sit,amet";
String[] strings = string.split(",");
for (String s : strings) {
System.out.println(s);
}
}
}
正如所料,输出如下:
Lorem
ipsum
dolor
sit
amet
现在考虑以前代码的变体,我只需将,
变为|
:
public class Main {
public static void main(String[] args) {
String string = "Lorem|ipsum|dolor|sit|amet";
String[] strings = string.split("|");
for (String s : strings) {
System.out.println(s);
}
}
}
我期待相同的输出,但奇怪的是:
L
o
r
e
m
|
i
p
s
u
m
|
d
o
l
o
r
|
s
i
t
|
a
m
e
t
怎么了?
答案 0 :(得分:7)
String#split()方法接受正则表达式,|
在正则表达式中具有特殊含义。
要查看|
的预期结果转义。
String[] splits=string.split("\\|");
或者您可以使用Pattern
课程,以避免所有混乱。
String[] splits= string.split(Pattern.quote("|"));