0

为什么这个字符串问题只出现在windows中?

如何替换文件分隔符?以下两种方法都不适合我。

错误是:

java.util.regex.PatternSyntaxException:索引 1 附近出现意外内部错误。

String s ="pathoffile";

if(File.separator.equals("\\"))
   s= s.replaceAll(File.separator,"/");


if(File.separator.equals("\\"))
   s= s.replaceAll("\\","/");
4

1 回答 1

3

您需要在正则表达式中转义反斜杠两次

 s= s.replaceAll("\\\\","/");

一次,将反斜杠放入字符串中。

两次,因为正则表达式有特殊的字符类,比如\d, 并且以反斜杠开头,所以文字反斜杠是\\.

但是您可能真正应该做的是根本不使用正则表达式来替换单个字符

s = s.replace('\\', '/');
于 2012-10-24T04:05:58.033 回答