replace与replaceAll的区别
一、简述
【replace】的参数是 char 和 CharSequence,既支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,也就是字符串)。
【replaceAll】的参数是 regex,即基于规则表达式的替换。比如:可以通过replaceAll("\\d", "*")
把一个字符串所有的数字字符都换成星号。
二、异同
1️⃣相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串。
2️⃣不同点:replaceAll 支持正则表达式,因此会对参数进行解析(两个参数均是)。replace 不支持正则,replace("\\d","*")
就是替换"\\d"
的字符串,而不会解析为正则。
3️⃣另外还有一个不同点:\
在 Java 中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\" );
只打印出一个\
。但是\
也是正则表达式中的转义字符,需要用两个代表一个。所以\\\\
被 Java 转换成\\
,\\
又被正则表达式转换成\
,因此用 replaceAll 替换\
为\\
,就要用replaceAll("\\\\","\\\\\\\\")
,而 replace 则为replace("\\","\\\\")
。
4️⃣如果只想替换第一次出现的,可以使用 replaceFirst(),这个方法也是基于正则表达式的替换,但与 replaceAll() 不同的是,只替换第一次出现的字符串。
三、测试
public class ReplaceDemo {public static void main(String[] args) {String str = "a1b2c3d";System.out.println(str.replace("a", "123"));System.out.println(str.replace("\\d", "888"));System.out.println(str.replaceAll("\\d", "888"));System.out.println(str.replaceFirst("\\d", "888"));}
}
结果:
1231b2c3d
a1b2c3d
a888b888c888d
a888b2c3d
replace与replaceAll的区别相关推荐
- replace和replaceAll的区别
String对象中的replace和replaceAll的区别? replace方法:支持字符和字符串的替换. public String replace(char oldChar, char new ...
- java中String字符串的替换函数:replace与replaceAll的区别
例如有如下x的字符串 String x = "[kllkklk\\kk\\kllkk]"; 要将里面的"kk"替换为++,可以使用两种方法得到相同的结果 rep ...
- java replace和replaceAll的区别以及用法
replace和replaceAll是JAVA中常用的替换字符的方法 public String replace(char oldChar, char newChar) 在字符串中用n ...
- String 方法中 replace 和 replaceAll 的区别详解(源码分析)
replace() 和 replaceAll() 都是常用的替换字符串的方法: 两者都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串. 如果只想替换第一次出现的,可以使用 re ...
- JAVA中REPLACE和REPLACEALL的区别(转)
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharS ...
- java中replace和replaceAll的区别
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharS ...
- Java中的Replace和ReplaceAll的区别
replace和replaceAll是String类中提供的两种用于字符/字符串替换的方法.如果只从字面意思理解,很容易误解为replace表示替换单个匹配项,而replaceAll表示替换所有匹配项 ...
- JS 中 replace 和 replaceAll 的区别?
方法解释 两种方法都返回一个新字符串,原始字符串保持不变.并且改方法可以传两个参数. 参数一:pattern. pattern 可以是一个 字符串 或一个 正则表达式, 参数二:replacement ...
- replace()和replaceAll()的区别
相同点 都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用 replaceFirst(),这个方法也是基于规则表达式的替换,但与replace ...
最新文章
- ICON: 从单张图片重建穿衣服人体模型
- LeetCode 77. Combinations--回溯法,-Python,Java解法
- 电脑下边的任务栏不见了_XP系统任务栏被空白工具栏占领快速删除办法
- springmvc与struts2的区别
- IEEE Spectrum:这些小机器人又好玩又实用,适合过年带回家
- foreman架构的引入3-安装Foreman1.5.3架构(all-in-one)
- 高等数学复习笔记(六)- 一元函数积分学的应用
- c语言程序不知道头结点输出链表,C语言,不带头结点的链表,利用头插法存入信息,然后输出,没有error,却运行不了,求大神指点...
- 信创终端高效运维与安全管理方案
- uploadify上传
- excel power Query
- 单目3D目标检测之入门
- 中国脑计划颠覆性创新之路二,欧美脑计划存在重大缺陷
- CSS3中的伪元素选择器与scss
- 04.超网_静态路由
- 暗组免杀php,那些强悍的PHP一句话后门
- Pycharm新手使用教程(详解)
- 30种常见补肾食物,不看绝对会后悔
- 【Unity】AI实战应用——Unity接入GPT和对游戏开发实际应用的展望
- 为什么我们要一直深入底层