Java - String Split
Created by : Mr Dk.
2020 / 03 / 26 20:12
Nanjing, Jiangsu, China
今天遇上一个坑,花了点时间才解决,特此留念,提醒自己。
会遇上这个坑的根本原因是,对正常字符串和正则表达式的混用。之前在使用 Java 的 String.split(string regex) 时,参数显然应当是一个正则表达式的字符串。以前遇到的场景大部分是分割空格,或用 / 分割路径,而 xxx.split(" ") 是可行的。
今天的场景是切割一个 1.src.patch 的文件名。于是第一次写的代码是 String.split("."),然而切分出来的数组长度为 0 而不是 3 😲。后来才想起来 . 是正则中的特殊意义字符,匹配除 \r 或 \n 以外的任何字符,所以无法代表 . 本身的含义。代码需要被修正为 String.split("\\.") 才能得到预期效果。
再次提醒自己参数名为 regex 的字符串可不能直接写成字符串了!