java反斜杠\的用法比较怪异,分为两种场景:

1. 正则表达式

匹配点(.) 或  {、[、(、?、$、^ 、+和 * 这些特殊符号要要前加双斜框,表示字符类的时候也是用双斜杠譬如(\\s[空白符], \\S, \\d, \\D, \\w, \\W),匹配 \ 时要用四斜杠

2. 字符串

譬如\n, \t, \r 回车换行tap之类的只要一个反斜杠即可,在字符串中表示一个反斜杠只用两个反斜杠即可 \\

顺带提一下String.replace 和replaceAll的区别,前者是匹配字符串替换,后者是匹配正则表达式替换

相同点是:都是对源字符串的全部替换

String s ="sdf\\a\\aa";

System.out.println(s);

System.out.println(s.replaceAll("\\\\", "\\\\\\\\"));

System.out.println(s.replace("\\", "\\\\"));

这两种替换的结果都是 sdf\\a\\aa

源码剖析:

public String replaceAll(String regex, String replacement) {

return Pattern.compile(regex).matcher(this).replaceAll(replacement);

}

public String replace(CharSequence target, CharSequence replacement) {

return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(

this).replaceAll(Matcher.quoteReplacement(replacement.toString()));

}

replace比replaceall多了quoteReplacement,这个函数就是把字符串中出现\或者$的前面再添加一个\, 这样的话s.replace("\\", "\\\\")其实后台处理也是八个\

最简单的就是这样记住,在正则表达式中用4个\表示一个\

java中反斜杠的用法_java反斜杠\的用法相关推荐

  1. java各种符号用法_java“与”符号写法与用法

    java"与"符号写法与用法 java"与"符号怎么打出来的 java中"与"符号使用键盘上的 Shift + 数字7 即可打出来.(不是小 ...

  2. java中截取后几位字符串_java截取字符串后几位

    java中常用的字符串的截取方法_计算机软件及应用_IT/计算机_专业资料.jsp中常见使用技术,js,jstl,eclipse,java 1.length() 字符串的长度 例:char chars ...

  3. java中shot占几个字节_Java 占用字节数

    数据类型 大小(二进制位数) 范围 默认值 byte(字节) 8 -128 - 127 0 shot(短整型) 16 -32768 - 32768 0 int(整型) 32 -2147483648-2 ...

  4. java中怎么让一个数倒转_java 输入一个数字,反转输出这个数字的值(实现方法)

    java 输入一个数字,反转输出这个数字的值(实现方法) 如下所示: package 第四天; import java.util.Scanner; public class 数字反转 { public ...

  5. JAVA中重写和实现的区别_Java中重载和重写的区别

    Java中重载和重写的区别 1.1重载是什么 Overloading   方法重载是让类以统一的方式处理不同类型数据的一种手段,多个同名函数同时存在,具有不同的参数个数/类型 1.2为什么用重载 重载 ...

  6. java中判断string类型的值_java判断对象是否是string类型

    1.instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:result = ...

  7. java中什么叫懒加载_java懒加载的原理

    聊一下以下名词.概念或用法:lazy.lazy="extra".inverse.fetch.fetch="join".fetch=" subselec ...

  8. java中出现循环问题如何解决_java如何解决循环引用

    Excel 循环引用产生的原因及解决方法 来源:excel 格子社区 我们打开 ... (Garbage Collection Thread) , 来跟踪每一块分配出去的内存空间, Java 虚拟机 ...

  9. java中基本字节输出流类是_java中基本输入输出流的解释

    网络程序的很大一部分是简单的输入输出,即从一个系统向另一个系统移动字节.字节就是字节,在很大程度上,读服务器发送的数据与读取文件没什么不同:向客户传送数据与写入一个文件也没有什么区别. Java中输入 ...

最新文章

  1. php mysql什么意思_php MySQLi是什么意思?
  2. 苹果充电显示不支持此配件_苹果发布新配件:支持无线充电 870元起
  3. JQuery.validate.js 表单验证
  4. 【SICP练习】79 练习2.51
  5. ai中如何插入签名_技巧不求人167期 Excel如何打印到1页纸的2种方法 Excel如何插入手写签名...
  6. mi6 android版本,小米6:我依旧是王,MIUI10.4.2稳定版与AndroidP同时到来
  7. 容器编排技术 -- Kubernetes是什么?
  8. 思路与好题记录与小技巧
  9. python软件包版本查询的方法
  10. [Win32]创建模态窗口
  11. 分层图最短路【bzoj2763】: [JLOI2011]飞行路线
  12. 计算机组成原理白中英ppt,计算机组成原理(本全)白中英.ppt
  13. (html+css)静态小米闪购主页仿制
  14. AD20输出PDF 打印 位号图 焊接图
  15. 职场生涯的3个步骤--法、儒、道家的管理哲学
  16. 用 MeGUI 压制 DVDrip 入门
  17. CSS3实战-文字篇
  18. 梦想照进现实|CSDN 实体奖牌 第六期
  19. [Practical.Vim(2012.9)].Drew.Neil.Tip01 学习摘要
  20. 推流端、服务端、播放端

热门文章

  1. 500mA线性锂离子电池充电器CL4054D特性有那些?
  2. 唯品会首提“消费升维” 重申面向广普消费者做特卖
  3. 台男子勒死女子两度奸尸 败露后还神色自若
  4. Nordic NRF51822 从零开始系列(外部设备片—MPU6050DMP驱动的移植)
  5. linux版gaussian运行,linux下运行高斯比windows的优势
  6. 天语 W619 一键ROOT 教程
  7. 【JDK8、JDK11资源分享-迅雷下载】
  8. 基于微信小程序的订餐系统
  9. oracle日期计算
  10. TCP重传机制有哪些?