六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 55|回复: 0

Java 反斜杠 斜杠 编译 转换

[复制链接]

升级  46%

98

主题

98

主题

98

主题

举人

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2013-2-1 11:21:13 | 显示全部楼层 |阅读模式
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个\来说,最终会被解释成“\\”。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表