考虑以下简单的代码行:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,输出如下:
Lorem
ipsum
dolor
sit
amet
Run Code Online (Sandbox Code Playgroud)
现在考虑前面的代码中,我只是把的变化,为|:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我期待相同的输出,但奇怪的是以下内容:
L
o
r
e
m
|
i
p
s
u
m
|
d
o
l
o
r
|
s
i
t
|
a
m
e
t
Run Code Online (Sandbox Code Playgroud)
怎么了?
String#split()方法接受正则表达式并|在正则表达式中具有特殊含义.
要看到预期的结果逃脱|.
String[] splits=string.split("\\|");
Run Code Online (Sandbox Code Playgroud)
或者你可以使用Pattern课程,以避免所有的混乱.
String[] splits= string.split(Pattern.quote("|"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |