syc001 发表于 2013-2-1 11:21:13

Java 反斜杠 斜杠 编译 转换

package cn.rg.demo.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

public class BaseHtmlParser {

public static String changeSymbol(String url){
String url2=url.replaceAll("\\\\","\\\\\\\\");
return url2;
}

public static void main(String[] args) {
System.out.println("C:\\Program Files\\360");
System.out.println(changeSymbol("C:\\Program Files\\360"));

      }
}

输出结果:
C:\Program Files\360
C:\\Program Files\\360

原理不知道,如下解释:

String.replaceAll ()是用regular expression 来作为参数的。但是java本身的字符串对于转义符\也有类似的处理。首先,java会把“\\\\”解释成一个字符串(其中包含两个char)——“\\”这个就是你在JDK的文档里看到的。
接下来,由于replaceAll 是以正则表达式作为参数,所以“\\”被解释成一个regex。对于一个regex来说这就代表着一个字符,就是“\”。对后面的那个8个\来说,最终会被解释成“\\”。
页: [1]
查看完整版本: Java 反斜杠 斜杠 编译 转换