发现还是有些东西没有刻子脑子里,,过段时间就没什么概念了,所以贴出来...以免再忘...
?
在拆分字符串时遇到通过 \ 来拆分,可是用所以想通过转义 \\ 来拆分的时候会报异常
?
- public?class?Main?{??
- ??
- ????/**?
- [email protected]?
- ?????*/??
- ????public?static?void?main(String[]?args)?{??
- ????????String?aa?=?"g:\\a\\bb\\cc.gif";??
- ????????System.out.println(aa);??
- ????????/**??
- ?????????*?因为涉及到两层,一个是JAVA的转义,一个是源代码的转义?
- ?????????*?正则表达式需要转义用\\表示\;??
- ?????????*?而java的源代码里,字符串中需要转义用\\表示\。??
- ?????????*?因此累加在一起就必须是四个斜线\\\\,这样java转义后就是\\,而\\在正则里转义后为\这样就可以进行匹配了?
- ?????????*?有点绕,呵呵~?
- ?????????*/???
- ????????String[]?xx?=?aa.split("\\");??
- ????????for(String?cell:xx){??
- ????????????System.out.println(cell);??
- ????????}??
- ????}??
- ??
- }??
异常如下:
?
?
- Exception?in?thread?"main"?java.util.regex.PatternSyntaxException:?Unexpected?internal?error?near?index?1??
- \??
- ?^??
- ????at?java.util.regex.Pattern.error(Pattern.java:1713)??
- ????at?java.util.regex.Pattern.compile(Pattern.java:1466)??
- ????at?java.util.regex.Pattern.<init>(Pattern.java:1133)??
- ????at?java.util.regex.Pattern.compile(Pattern.java:823)??
- ????at?java.lang.String.split(String.java:2292)??
- ????at?java.lang.String.split(String.java:2334)??
- ????at?cn.osl.businessagent.test.Main.main(Main.java:18)??
这时应该用\\\\
?
?
- public?class?Main?{??
- ??
- ????/**?
- [email protected]?
- ?????*/??
- ????public?static?void?main(String[]?args)?{??
- ????????String?aa?=?"g:\\a\\bb\\cc.gif";??
- ????????System.out.println(aa);??
- ????????/**??
- ?????????*?因为涉及到两层,一个是JAVA的转义,一个是源代码的转义?
- ?????????*?正则表达式需要转义用\\表示\;??
- ?????????*?而java的源代码里,字符串中需要转义用\\表示\。??
- ?????????*?因此累加在一起就必须是四个斜线\\\\,这样java转义后就是\\,而\\在正则里转义后为\这样就可以进行匹配了?
- ?????????*?有点绕,呵呵~?
- ?????????*/???
- ????????String[]?xx?=?aa.split("\\\\");??
- ????????for(String?cell:xx){??
- ????????????System.out.println(cell);??
- ????????}??
- ????}??
- ??
- }??
输出结果:
?
?
- g:\a\bb\cc.gif??
- g:??
- a??
- bb??
- cc.gif ?