当前位置: 代码迷 >> Ruby/Rails >> 轮换“\”的时候报错Unexpected internal error near index 1 \
  详细解决方案

轮换“\”的时候报错Unexpected internal error near index 1 \

热度:99   发布时间:2016-04-29 02:19:19.0
替换“\”的时候报错Unexpected internal error near index 1 \ ^

发现还是有些东西没有刻子脑子里,,过段时间就没什么概念了,所以贴出来...以免再忘...

?

在拆分字符串时遇到通过 \ 来拆分,可是用所以想通过转义 \\ 来拆分的时候会报异常

?

  1. public?class?Main?{??
  2. ??
  3. ????/**?
  4. [email protected]?
  5. ?????*/??
  6. ????public?static?void?main(String[]?args)?{??
  7. ????????String?aa?=?"g:\\a\\bb\\cc.gif";??
  8. ????????System.out.println(aa);??
  9. ????????/**??
  10. ?????????*?因为涉及到两层,一个是JAVA的转义,一个是源代码的转义?
  11. ?????????*?正则表达式需要转义用\\表示\;??
  12. ?????????*?而java的源代码里,字符串中需要转义用\\表示\。??
  13. ?????????*?因此累加在一起就必须是四个斜线\\\\,这样java转义后就是\\,而\\在正则里转义后为\这样就可以进行匹配了?
  14. ?????????*?有点绕,呵呵~?
  15. ?????????*/???
  16. ????????String[]?xx?=?aa.split("\\");??
  17. ????????for(String?cell:xx){??
  18. ????????????System.out.println(cell);??
  19. ????????}??
  20. ????}??
  21. ??
  22. }??


异常如下:

?

?

  1. Exception?in?thread?"main"?java.util.regex.PatternSyntaxException:?Unexpected?internal?error?near?index?1??
  2. \??
  3. ?^??
  4. ????at?java.util.regex.Pattern.error(Pattern.java:1713)??
  5. ????at?java.util.regex.Pattern.compile(Pattern.java:1466)??
  6. ????at?java.util.regex.Pattern.<init>(Pattern.java:1133)??
  7. ????at?java.util.regex.Pattern.compile(Pattern.java:823)??
  8. ????at?java.lang.String.split(String.java:2292)??
  9. ????at?java.lang.String.split(String.java:2334)??
  10. ????at?cn.osl.businessagent.test.Main.main(Main.java:18)??



这时应该用\\\\

?

?

  1. public?class?Main?{??
  2. ??
  3. ????/**?
  4. [email protected]?
  5. ?????*/??
  6. ????public?static?void?main(String[]?args)?{??
  7. ????????String?aa?=?"g:\\a\\bb\\cc.gif";??
  8. ????????System.out.println(aa);??
  9. ????????/**??
  10. ?????????*?因为涉及到两层,一个是JAVA的转义,一个是源代码的转义?
  11. ?????????*?正则表达式需要转义用\\表示\;??
  12. ?????????*?而java的源代码里,字符串中需要转义用\\表示\。??
  13. ?????????*?因此累加在一起就必须是四个斜线\\\\,这样java转义后就是\\,而\\在正则里转义后为\这样就可以进行匹配了?
  14. ?????????*?有点绕,呵呵~?
  15. ?????????*/???
  16. ????????String[]?xx?=?aa.split("\\\\");??
  17. ????????for(String?cell:xx){??
  18. ????????????System.out.println(cell);??
  19. ????????}??
  20. ????}??
  21. ??
  22. }??


输出结果:

?

?

  1. g:\a\bb\cc.gif??
  2. g:??
  3. a??
  4. bb??
  5. cc.gif ?
  相关解决方案