例如有如下x的字符串

String x = "[kllkklk\\kk\\kllkk]";
要将里面的“kk”替换为++,可以使用两种方法得到相同的结果

replace(CharSequence target, CharSequence replacement)       ——          x.replace("kk", "++")

replaceAll(String regex, String replacement)       ——          x.replaceAll("kk", "++")

可见两个函数没有什么区别,下面将字符串中的“\\”替换为“++”
  System.out.println(x.replace("\\", "++"));    没有问题
  System.out.println(x.replaceAll("\\", "++"));  报错 java.util.regex.PatternSyntaxException

可见,当使用转义字符进行替换的时候,是有区别的。replaceAll的参数就是regex,是正则表达式。首先会转义,所以报错。

如果使用System.out.println(x.replaceAll("\\\\", "++"));即可完成。

那么在使用普通的字符串替换时,选用哪一个函数呢?

String x = "[kllkklk\\kk\\kllkk]";
  String tmp;
  //System.out.println(x.replace("[", "#").replace("]", "#"));
  System.out.println(new Date().getTime());
  for(int i =0;i<1000000;i++)
   tmp=x.replace("kk", "--");
  System.out.println(new Date().getTime());
  for(int i =0;i<1000000;i++)
   tmp=x.replaceAll("kk", "++");
  System.out.println(new Date().getTime());

测试结果:

1312424571937
1312424574531
1312424576671

根据测试replaceAll函数要更快一些。看源码发现,replace函数里面仍使用replaceAll函数。

总体原则:当字符串无法确定是否具有转义字符时,而且也不需要转义时,建议使用replace函数

否则,使用replaceAll函数

java中String字符串的替换函数:replace与replaceAll的区别相关推荐

  1. Java中String字符串截取几种方法(substring,split)

    Java中String字符串截取几种方法 substring,split 这是一个Java中的String的基础用法的演示. 下面通过代码对大家进行讲解 substring 这里用来ndexOf,la ...

  2. Java中String字符串:空字符串、存放空的字符串、null的区别

    Java中String字符串:空字符串.存放空的字符串.null的区别 Java String字符串中有三种特殊的字符串:空字符串.存放空的字符串.字符串为Null,如下所示: String str1 ...

  3. Java中String 字符串与List<String>互转

    Java中String 字符串与List互转 大家好,我是酷酷的韩~ 1.String转List public static void main(String[] args) {String aa = ...

  4. Java中string字符串的值_Java中的字符串(String)

    一.基本概念: 字符串是一系列字符串的序列.在Java语言中字符串是用一对对双引号"",括起来的字符系列.例如"Hello","你好".从数 ...

  5. JAVA中String的一些常用函数用法总结

    最常用的就是Length()函数了, String s=""; int i=s.length(); i结果为0. 如果是String s=null; int i=s.length( ...

  6. Java中string字符串和char字符之间的千丝万缕

    目录 前言 String字符串和char字符的区别 拓展 相互转换 String字符串转换成char字符数组 char字符转换成String字符串 char字符数组转换成String字符串 Strin ...

  7. Java中String字符串toString()、String.valueOf()、String强转、+ 的区别

    Object#toString(): Object object = getObject(); System.out.println(object.toString()); 在这种使用方法中,因为ja ...

  8. JAVA中String字符串比较equals()和equalsIgnoreCase()的区别

    标签: equals和equalsIgnoreC 2012-11-11 16:03 65644人阅读 评论(0) 收藏 举报  分类: JAVA(3)  1.使用equals( )方法比较两个字符串是 ...

  9. JAVA中String字符串删除指定字符的办法

    场景: 有个字符串oldStr,内容为"a,b,c,d,e",想动态删除某个字符,或c或b. 解决办法: 1.转数组 String[] arr = oldStr.split(&qu ...

最新文章

  1. Jupyter Magic - Timing(%%time %time %timeit)
  2. 实战:使用 PyTorch 和 OpenCV 实现实时目标检测系统
  3. 单例模式和HttpContext线程内唯一
  4. rabbitmq java文档_《RabbitMQ官方文档》订阅与发布
  5. JQuery学习笔记12——GET请求和POST请求
  6. CentOS查看硬件信息
  7. Centos如何安装163yum源
  8. sharelatex 编辑论文
  9. 常见的3D打印文件格式都有哪些
  10. 发动机压缩比怎么计算公式_发动机要多大的压缩比热效率才能达到达到60%?
  11. 中国地产商寻找下一个春天 1
  12. 给普通人的Python——第四章
  13. DBProxy快速入门教程
  14. 数模电路基础知识 —— 1. 回路中的电压、电流、电阻、电功率计算式
  15. 身份证阅读器(新中新)写入受保护内存问题,已解决
  16. python调用百度翻译-Python 调用百度翻译API
  17. Mac 解决向日葵被别人远程控制无法操作的问题
  18. 20000套LUT预设合集-主流ins油管大神两万套LUTS调色预设合集
  19. 艾美捷彗星检测试剂盒(单细胞凝胶电泳)化验原理及研究
  20. Docker学习(一)-简介

热门文章

  1. 代码实现识别部分截图在整张图片中的位置_基于神经网络的OCR识别
  2. linux telnet命令不可用的解决办法
  3. date工具类 DateUtils.java
  4. [Ext JS 4] 实战之将chart导出为png, jpg 格式的文件
  5. [Teamcenter 2007 开发系列] 整合Extjs 展现页面组件
  6. linux访问有域名的ftp,Linux安装了ftp服务怎么用域名访?
  7. java策略模式详解_Java经典设计模式之策略模式原理与用法详解
  8. 手机html文档,手机文档html能删除吗
  9. linux虚拟机可以交叉编译吗,在Linux上交叉编译windows程序
  10. java dns 解析域名解析_java网络学习 java dns 域名解析协议实现