在Java中,不管是String.split(),还是正则表达式,有一些特殊字符需要转义,这些字符是
( [ { / ^ - $ ¦ } ] ) ? * + .
方法为字符前面加上"\\",这样在split、replaceAll时就不会报错了
不过要注意,String.contains()方法不需要转义。
public static void main(String[] args) {
String data1 = "|abc|de|f|";
String data2 = ",abc,de,f,";
String data3 = "'abc'de'f";
String data4 = " abc de f";
String data5 = ";abc;de;f";
//String[] split = data1.split("\\|");
String[] split = data5.split(";");
List<String> res = Arrays.stream(split).collect(Collectors.toList());
System.out.println(res);
}
错误结果:
正确结果: