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

【Java干货|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]); } }

    推荐阅读