使用split()切割字符串的时候出现下标越界
String fileName = "a.txt";
String[] split = fileName.split(".");
System.out.println(split[0]);
System.out.println(split[1]);
文件名输出正常,但是分割错误。
java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
这是因为 要把 "." 转义 "\\."
String[] split = fileName.split(".");
这是因为 要把 “.” 转义 “\\.“String[] split = fileName.split(”\\.”);
Java中一个\代表转义,而在正则表达式中[ ]、{ }都有特殊含义,同样也需要对其进行转义,那么正则表达式对[ ]和{ }字符本身的表示就是 [ 、 ]、 { 、 }。所以\[ 第一个\只是对后面\的转义。
正因如此,对[ 的匹配需要用两个\。