使用split()切割字符串的时候,假如是根据"+","*",""等一些字符切割,直接这么一个单独的字符串是会报错的,因为split()是根据正则匹配,所以传入的字符串不能是正则的元字符.但是又非得用这些元字符去分割的话,只能通过转义的方法了.
转义字符是"",在要转义的元字符前面加上这个转义字符,元字符就变成了普通的字符: s.split("+")
但是在java里,""也是有含义的,所以直接s.split("+")还是会报错的...所以这时候需要将""也进行转义,转义为普通的""字符,就成了s.split("\+")
s.split("\+")的意思就是先将""转译为普通的""字符,这时候从java的视角看就是"+",然后这个字符串传入到正则中,正则就会将其转译为"+"字符,所以就可以通过这个"+"分割字符串了.
万一分割字符串的是个""怎么办?直接s.split("\")么?
不行的,这是会报错的...因为这个的意思是先将""转成字符"",然后另一个""怎么办...所以得写成s.split("\\"),两个转义""分别把元字符""转成普通字符,通过java的视角看是"\"这字符串.然后传给正则,正则一看,一个转义字符要转义另一个转义字符,然后得出的结论就是""字符,然后就开心的分割字符串了