replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:

  1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);

  2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;

  相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用 replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串;

  另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;

  还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的.

  举例如下:

  String src = new String("ab43a2c43d");

  System.out.println(src.replace("3","f"));=>ab4f2c4fd.

  System.out.println(src.replace('3','f'));=>ab4f2c4fd.

  System.out.println(src.replaceAll("\\d","f"));=>abffafcffd.

  System.out.println(src.replaceAll("a","f"));=>fb43fc23d.

  System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d

  System.out.println(src.replaceFirst("4","h"));=>abh32c43d.

  如何将字符串中的"\"替换成"\\":

  String msgIn;

  String msgOut;

  msgOut=msgIn.replaceAll("\\\\","\\\\\\\\");

  原因:

  '\'在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\" ) ;只打印出一个"\"。但是'\'也是正则表达式中的转义字符(replaceAll 的参数就是正则表达式),需要用两个代表一个。所以:\\\\被java转换成\\,\\又被正则表达式转换成\。

  同样

  CODE: \\\\\\\\

  Java: \\\\

  Regex: \\

  将字符串中的'/'替换成'\'的几种方式:

  msgOut= msgIn.replaceAll("/", "\\\\");

  msgOut= msgIn.replace("/", "\\");

  msgOut= msgIn.replace('/', '\\');

java中replace()和replaceAll()区别的更多相关文章

  1. Java中replace与replaceAll区别

    看门见山 1.java中replace API: replace(char oldChar, char newChar):寓意为:返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所 ...

  2. java中replace和replaceAll的区别

    replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharS ...

  3. JAVA中REPLACE和REPLACEALL的区别(转)

    replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:  1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(Char ...

  4. 浅谈java中replace()和replaceAll()的区别

    replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharS ...

  5. java中ArrayList 、LinkList区别

    转自:http://blog.csdn.net/wuchuanpingstone/article/details/6678653 个人建议:以下这篇文章,是从例子说明的方式,解释ArrayList.L ...

  6. java 中 ==和equals 的区别

      Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolea ...

  7. java中equals和==的区别 (转)

    java中equals和==的区别  值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引 ...

  8. 【转】Java中equals和==的区别

    [转]Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boole ...

  9. java中a++与++a区别

    java中a++与++a区别 a++与++a的区别,如果单独使用没有任何区别,如果在运算中就有区别了,a++是先运算在赋值,而++a是先赋值在运算!! 先看a++的代码哦 class demo1 { ...

随机推荐

  1. emmet 教程 emmet快捷键大全

    Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示: ...

  2. centos 安装 ntpdate 并同步时间

    1.安装ntp yum install -y ntp 2.与一个已知的时间服务器同步 # time.nist.gov 是一个时间服务器 ntpdate time.nist.gov 3.删除本地时间并设 ...

  3. 完全删除Postgresql

    First: If your install isn't already damaged, you can drop unwanted PostgreSQL servers ("cluste ...

  4. 给hexo添加评论系统

    默认主题 landscape 文件目录,comments为新建的 _config.yml layout -- _partial -- article.ejs |- comments -- disqus ...

  5. HDU 5821 Ball

    记录一下每个位置最终到达的位置.然后每次操作排序. #pragma comment(linker, "/STACK:1024000000,1024000000") #include ...

  6. 【定位:PDF文件定位关键字所在坐标和页码】

    iText简介: iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件 ...

  7. RTL-SDR简单介绍

    Sdr 软件定义的无线电(Software Defined Radio,SDR) 是一种无线电广播通信技术,它基于软件定义的无线通信协议而非通过硬连线实现. Rtl-sdr 原身是Realtek RT ...

  8. Effective JavaScript :第五章

    1.使用Object的直接实例构造轻量级的字典 字典就是可变长的字符串与值得映射集合.JavaScript甚至提供了枚举一个对象属性名的利器——for...in循环. var dict = { ali ...

  9. Python 逻辑行/物理行

    物理行是你在编写程序时所看见的. 逻辑行是Python看见的单个语句.Python假定每个物理行对应一个逻辑行 . 默认地,Python希望每行都只使用一个语句,这样使得代码更加易读. 如果你想要在一 ...

  10. vs2012常用快捷键总结

    ctrl+k+c  注释 ctrl+k+u 取消注释 ctrl+m+t 折叠代码 ctrl+t 取消折叠 ctrl+k+d 调节代码 ctrl+f 查找 ctrl+g  跳转行(一般调试的时候显示哪行 ...