s.split(“.”)
问题描述
我期望的输出可能是一个分割后的数组,比如将"a.xtx"按点号分割成[“a”, “txt”],但实际运行结果却是一个空数组[].
public static void main(String[] args) {
String s="a.txt";
String[] split =s.split(".");
System.out.println(Arrays.toString(split));
}
原因分析:
split方法接收一个正则表达式作为参数,而点号.在正则表达式中是一个特殊字符,代表匹配任意字符。因此,直接使用split(“.”)会导致正则表达式解释器将.视为通配符,从而匹配任何字符,导致字符串被分割成空数组
解决方案:
加转义字符
String[] split =s.split("\\.");