Java干货 - String.split()踩过的那些小坑

在日常开发中, 我们往往需要对字符串进行切割, 而String类已经给我们写好了split() 的方法, 该方法返回的是切割完后的一个数组

调用String.split()方法时, 我们只需要传入指定的切割符即可完成切割操作, 然而, 我即将要说的小坑就是出现在切割符上. 因为有的字符需要进行转义, 而需要转义的字符又是我们常用来作为切割符的字符, 如: .|*+(-_- 一副摊手脸)
对字符进行转义: 在需要转义的字符前加上\\即可
"." -> 转义 -> "\\."

"|" -> 转义 -> "\\|"
举个栗子
public static void main(String[] args) {
    String[] strArr = "A|B|C".split("\\|");
    for (int i = 0; i < strArr.length; i++) {
        System.out.println(strArr[i]);
    }
}
如果非要作死用\作为切割符的话
public static void main(String[] args) {
    // 由于 \ 表示字符中就需要转义了, 所以 A\B\C 用代码表示就是"A\\B\\C"
    String[] strArr = "A\\B\\C".split("\\\\"); // 转义作死的切割符
    for (int i = 0; i < strArr.length; i++) {
        System.out.println(strArr[i]);
    }
}
Tips: 如果有多个分隔符, 可以用|作为连字符
public static void main(String[] args) {
    String str = "A|BCD";
    String[] strArr = str.split("\\||C");
    for (int i = 0; i < strArr.length; i++) {
        System.out.println(strArr[i]);
    }
}

你可能感兴趣的:(Java干货 - String.split()踩过的那些小坑)