这样一段代码,旨在将传入字符串的不符合路径标识都替成当前系统的标识,可是总是报错:Unexpected internal error near index 2。这是什么原因?传入的path也很简单啊:config/system.config
,怎么就出问题了呢?而且用了Matcher.quoteReplacement(java.lang.String) 方法之后还是一样。    public static final String formatStringPath(final String path){
        try {
            return path.replaceAll("/\\", File.separator);
        } catch (Exception ex) {
            
            System.out.println(ex.getMessage());
            return path;
        }
    }

解决方案 »

  1.   


    public static final String formatStringPath(final String path){
            try {
                return path.replaceAll("/", File.separator).replaceAll("\\",File.separator);
            } catch (Exception ex) {
                
                System.out.println(ex.getMessage());
                return path;
            }
        }
    楼主的意思好像是两个平台下的文件分割符,像上面或许可以的!
      

  2.   

    应该是这样的:    public static final String formatStringPath(final String path){
            try {
                return path.replaceAll("/", Matcher.quoteReplacement(File.separator));
            } catch (Exception ex) {
                
                System.out.println(ex.getMessage());
                return path;
            }
        }
      

  3.   

        public static final String formatStringPath(final String path){
            try {
                return path.replaceAll("/", Matcher.quoteReplacement(File.separator)).replaceAll("\\\\", Matcher.quoteReplacement(File.separator));
                
            } catch (Exception ex) {
                
                System.out.println(ex.getMessage());
                return path;
            }
        }