将路径字符串中的斜杠统一

问题:如path=/root/Desktop\\IzPack4\\src\\dist-files/IzPack-install.xml,此字符串有正斜杠,反斜杠,将其统一成一种,即File.separator。


方法:String#replaceAll()方法

            path = path.replaceAll("\\\\","\\\\\\\\");   可将字符串中的"\"变成"\\"

           

    说明:replaceAll方法接受两个正则表达式,其内部实现就是调用java的正则表达式类库。

在字符串path中"\\"打印出来是"\",但是其在内存中就是两个"\"(当读到第一个'\'时,告诉计算机做好转义后边那个字符的准备)。

所以当用replaceAll的时候,第一个参数“\\\\”传给replaceAll时,是相当于把“\\”直接传给replaceAll内部调用的Pattern.compile(regex),当Pattern.compile(regex)接收到“\\”,它还需要转义,所以结果是在replaceAll中传入四个“\\\\”,但实际只匹配一个"\"。

第二个参数"\\\\\\\\"是同样的道理,传到replaceAll中是8个"\",传给matcher(this).replaceAll(replacement)剩下4个"\",4个被matcher(this).replaceAll(replacement)解析为两个"\"。


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




path = path.replaceAll("\\/", "\\\\");, 可将字符串中的"/"替换为"\"


说明:第一个参数"\\/",传到replaceAll的是“\/”,传达Pattern.compile(regex)的是'/'。

if(is_linux){
        	path = path.replaceAll("\\\\","\\/");
        	System.out.println("linux path="+path);
        }else if(is_window){
        	path = path.replaceAll("\\/", "\\\\");
        	System.out.println("windows path="+path);
        }













你可能感兴趣的:(将路径字符串中的斜杠统一)