当前位置:  开发笔记 > 编程语言 > 正文

PatternSyntaxException:Windows下`.split(File.separator)`的索引1附近出现意外的内部错误

如何解决《PatternSyntaxException:Windows下`.split(File.separator)`的索引1附近出现意外的内部错误》经验,为你挑选了1个好方法。

下面的代码片段在linux下工作正常,但在windows下给我错误(这很奇怪,因为jvm/jdk应该是与操作系统无关的).

  File f = ... 
  String[] split = f.getPath().split(File.separator);

这是错误:

java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
 ^
        at java.util.regex.Pattern.error(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.util.regex.Pattern.(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.lang.String.split(Unknown Source)
        at java.lang.String.split(Unknown Source)

知道什么是错的吗?



1> ParkerHalo..:

问题是反斜杠是使用正则表达式的特殊字符(其他特殊字符的转义字符).你应该用

String[] split = f.getPath().split("\\\\");

为了按标志分开\.


如果你想让这个平台保持独立,我会看到你遇到的问题.在这种情况下,你可以做这样的事情:

String splitter = File.separator.replace("\\","\\\\");
String[] split = abc.split(splitter);

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有