`
yanghuidang
  • 浏览: 911001 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java 正斜杠与反斜杠之分

 
阅读更多
引用说明:有正斜杠与反斜杠之分,正斜杠,一般就叫做斜杠,符号为“/”;反斜杠的符号为“\” 引用斜杠(/)在JAVA中没有什么特别的意义,就是代表一个字符‘/’;
反斜杠(\)则不然,它和紧跟着它的那个字符构成转义字符,如“\n”(表示换行)、“\””(表示字符‘”’)等,所以在字符串中要表示字符'\'要用“\\”来表示,例:如果你这样定义一个字符串String s = “name\sex”是错误的,要这样定义String s = “name\\sex”;
引用注意:在正则表达式中的“\\”表示和后面紧跟着的那个字符构成一个转义字符(姑且先这样命名),代表着特殊的意义;所以如果你要在正则表达式中表示一个反斜杠\,应当写成“\\\\”。如果你这样获得一个Matcher,Matcher m = Pattern.compile(“\\”).matcher(“\\”)将会报错,你应当这样写Matcher m = Pattern.compile(“\\\\”).matcher(“\\”)才是正确且匹配的引用接下来我们来看一下String类中replace(CharSequence target,CharSequence replacement)方法与replaceAll(String regex, String replacement)方法的区别:
public static void main(String[] arg) throws OgnlException {
String s ="sdf\\a\\aa";
//把s中的反斜杠\ 替换为\\
System.out.println(s);
System.out.println(s.replaceAll("\\\\", "\\\\\\\\"));
System.out.println(s.replace("\\", "\\\\"));
}
引用可以看出上面两种都返回相同的替换结果。
这 里的关键是String.replaceAll()是用regular expression 来作为参数的。但是java本身的字符串对于转义符\也有类似的处理。首先,java会把“\\\\”解释成一个字符串(其中包含两个char)。接下来,由于replaceAll是以正则表达式作为参数,所以“\\”被解释成一个regex。对于一个regex来说这就代表着一个字符,就是“\”。对后面的那个8个\来说,最终会被解释成“\\”。
换言之,假设String.replaceAll()是以普通字符串,而不是regex作为参数,那么这样写代码: String target = source.replaceAll('\\', '\\\\'); 就可以了。
分享到:
评论

相关推荐

    老生常谈java路径中的反斜杠和斜杠的区别

    下面小编就为大家带来一篇老生常谈java路径中的反斜杠和斜杠的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Java中转义字符反斜杠\的代替方法及repalceAll内涵解析

    主要介绍了Java中转义字符反斜杠的代替方法及repalceAll内涵解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    关于通过Java连接mysql对反斜杠”\“转义的测试详解

    主要给大家介绍了关于通过Java连接mysql对反斜杠”“转义的测试的相关资料,文中通过实例代码介绍的非常详细,对大家理解反斜杠”“转义具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

    消除斜杠commons-lang3-3.12.0工具类.zip

    StringEscapeUtils方法消除json反斜杠

    详解json串反转义(消除反斜杠)

    JSon串在被串行化后保存在文件中,读取字符串时,是不能直接拿来用JSON.parse()解析为JSON 对象的。因为它是一个字符串,不是一个合法的JSON对象格式。例如下面的JSON串保存在文件中,读出来不能直接解析: ...

    词法分析[编译原理]

    编译原理的作业,绝对可以运行!! 需要安装java虚拟机

    java JDK 环境参数设置

    JDK 环境变量参数设置,经本人亲自检验!

    XML文档生成与解析

    通过 利用 java 以及 dom4j 来进行XML 文件的 生成与 解析操作。代码简单易懂。

    java Base64精简代码

    包含sun.misc.编码解码、org.apache.commons.codec.binary.Base64编码解码、自定义的、myBase64Encode/Dencode 以及对对几种方式的区别

    base64编码和解码

    string Encode(string nIn); string Decode(string nIn);

    正则表达式语法

    正则表达式的用法,在其他语言中,\\ 表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义。 在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的...

    java基础入门教程

    在 这 次 会 上 ,Java的 创 始 人 之 一 James Gosling 说 :"Java 不仅 仅只 是 applets, 它 能 做任 何 事 情 ",Dta 咨 询 公 司 的 高 级软 件 工 程 师 Rich Kadel说 :"Java 不仅 仅 是 一 种 程 序 设计 语言 ,...

    java的正规表达式的java工具类

    逗号, 帽号: 数学减号- 右尖括号> 左尖括号反斜杠\ 即空格,制表符,回车符等 10 匹配非负整数(正整数 + 0) 11 匹配不包括零的非负整数(正整数 > 0) 12 匹配正整数 13 匹配非正整数(负整数 + 0)14 匹配负整数;...

    Java-File类学习总结

    在Windows系统中使用反斜杠 ‘’ 或者斜杠 ‘/’来当作路径的分隔符,但是使用反斜杠需要注意: 单个反斜杠代表转义字符,所以在使用反斜杠充当路径的分隔符时需要成对出现。 File file1 = new File("E:\\aaa\\1...

    AES高级加密算法程序.rar

    AES高级加密算法程序.rarAES高级加密算法程序.rar

    基于java实现的食品公司管理系统(进销存)(Java课程设计)

    //导入数据库:注意路径和最后的反斜杠 jar包里使用的数据库名为company,连接mysql的用户名为“root”,密码为“”(空) 所以当在不同电脑使用时满足不了以上条件会运行不了 注意jar包需同lib文件放在同一目录...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    逗号, 帽号: 数学减号- 右尖括号> 左尖括号反斜杠\ 即空格,制表符,回车符等 10 匹配非负整数(正整数 + 0) 11 匹配不包括零的非负整数(正整数 > 0) 12 匹配正整数 13 匹配非正整数(负整数 + 0) 14 匹配负...

    Jenkins集成JMeter接口自动化框架-补充说明.pdf

    建议如果是路径设置,尽量使用反斜杠,在java项目中,斜杠\是需要\\转义的,毕竟最后会在linux 运行使用/反斜杠更ok; 解决路径问题,作为变量传参,在windows-java环境支持/反斜杠路径 2、技术框架的选型,在通过...

    JAVA代码生成工具

    自动替换generator.properties中的句号(.)为反斜杠,设置key为key+"_dir"后缀 示例: pkg=com.company => pkg_dir=com/company 九.自动拷贝二进制文件至输出目录 如模板目录下的 zip,rar,doc文件将会自动拷贝至...

    详细的ASCII码对照表

    JAVA中转义字符 1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377' ...\\ 反斜杠字符 \r 回车 (return) \n 换行 (newline) \f 走纸换页 (form feed) \t 横向跳格 (tab) \b 退格 (backspace)

Global site tag (gtag.js) - Google Analytics