public class Test {
public static void main(String[] args) {
String a = "|a|||ab|";
String[] b = a.split("\\|");
System.out.println(b.length);
}
}
问:输出是多少?
public static void main(String[] args) {
String a = "|a|||ab|";
String[] b = a.split("\\|");
System.out.println(b.length);
}
}
问:输出是多少?
a
空
空
ab长度5
相当于 String[] b = a.split("");
结果是 9。
b 是:[, |, a, |, |, |, a, b, |]
"",a,"","",ab
长度是5
split的参数是个正则表达式,特殊字符如 | . 等都需要转义
如果分割符在最后,就不会分割了。System.out.println(Arrays.toString("java_".split("_")));
System.out.println(Arrays.toString("_java".split("_")));
String[] b = a.split("\\|");
和String[] b = a.split("|");在Java中有一些特殊字符,当我们使用他们的时候需要转义,如*、+、|等。
当他们出现在字符串,我们使用split方法切割的时候,如果使用
String[] b = a.split("|");就会得不到正确的结果,应为|是特殊字符,无法表示普通字符“|”。
这个时候我们需要转义,告诉jvm我们要把它当作是普通字符,所以
String[] b = a.split("\\|");
这样才能得到预期的结果