https://blog.csdn.net/u012161134/article/details/53103048
https://blog.csdn.net/Dam_Long/article/details/54406791
闲话不说,直接上代码,如下:
public class Test {
public static void main(String[] args){
String s = "1|2|3";
System.out.println(s.contains("|"));
System.out.println(s.contains("\\|"));
System.out.println(s.split("|").length);
System.out.println(s.split("\\|").length);
}
}
打印结果如下:
true
false
5
3
从打印结果可以看出String的contains()方法中的参数无需转义,而split()方法的参数需要转义。
为什么呢:因为contains()方法参数是CharSequence,而split()方法参数是String,需要手动转义。
看了一下split()方法的源码,可以看出split()使用了正则表达式,故传的参数若需要转义,则需要进行转义。