问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

浅谈java中replace和replaceAll的区别1

发布网友 发布时间:2023-10-24 01:56

我来回答

4个回答

热心网友 时间:2024-12-01 19:45

1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串); \r\n2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号; \r\n\r\n 相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用 replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串; \r\n 另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作; \r\n 还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的. \r\n\r\n举例如下: \r\n \r\n String src = new String("ab43a2c43d"); \r\n\r\n System.out.println(src.replace("3","f"));=>ab4f2c4fd. \r\n System.out.println(src.replace('3','f'));=>ab4f2c4fd. \r\n System.out.println(src.replaceAll("\\d","f"));=>abffafcffd. \r\n System.out.println(src.replaceAll("a","f"));=>fb43fc23d. \r\n System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d \r\n System.out.println(src.replaceFirst("4","h"));=>abh32c43d.

热心网友 时间:2024-12-01 19:45

谈之前,我也去查了一些资料,我就感觉我自己记的也不是很清楚,就把API翻了一个边!

看完API以后感觉印象深刻了不少,大概总结了一下:不足之处还请指点!

public class  ReplaceTest
{
public static void main(String[] args) 
{
System.out.println("\n\t\t==========浅谈java中replace和replaceAll的区别==========\n");
init();
}//初始化!
private static void init()
{
/*
1:API解释:
public String replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的

通俗点说:把一个字符串中指定的字符,换成你想要的字符!

演示:换c,为 大;
*/
String s="public String replace(char oldChar, char newChar)".replace('c','大');

System.out.println(s);//输出结果:publi大 String repla大e(大har oldChar, 大har newChar)




/*
2:API解释
public String replace(CharSequence target,CharSequence replacement)
使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
该替换从字符串的开头朝末尾执行,
例如,用 "b" 替换字符串 "aaa" 中的 "aa" 将生成 "ba" 而不是 "ab"。

通俗点说:把一个字符串中,你想要换的多个字符,用字符串形式输入进去,替换成你想要的!
他后面打的这个比方,意思就是说如果多个相同字符,有重复的情况下,他是从左边开始算起的,并不是从右边!

演示:换 ac,为 他好!
*/
s="ac bc ac tc wc tc ac ".replace("ac","他好");

System.out.println(s);//他好 bc 他好 tc wc tc 他好



/*由此可以断定,这个二个方法是重载,倘若你参数类型传错,必定不行:*/

//s="今天气温真是高,已经高达37度了".replace('高',"低");//类型传错,直接报错!!
//s="今天气温真是高,已经高达37度了".replace("高",'低');//类型传错,直接报错!!
/*
方法 String.replace(char,char)不适用(参数不匹配; 
String无法转换为char)
方法 String.replace(CharSequence,CharSequence)不适用
(参数不匹配; char无法转换为CharSequence)
*/


/*
3:API解释:
public String replaceAll(String regex, String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

通俗点说:利用正则表达式,完成替换整个字符串中所有符合的字符!

演示:
*/
s="扁担扁担扁担宽宽宽宽,板凳板凳板凳长长长长";
String s1=s;

//板凳替换成桌子!
s=s.replaceAll("板凳","桌子");
System.out.println(s);
/*输出:扁担扁担扁担宽宽宽宽,桌子桌子桌子长长长长*/


//利用正则表达式过滤中文!
s1=s1.replaceAll("[\u2E80-\u9FFF]","夏天");
System.out.println(s1);
/*输出:夏天夏天夏天夏天夏天夏天夏天夏天夏天夏天,夏天夏天夏天夏天夏天夏天夏天夏天夏天夏*/
}
}

热心网友 时间:2024-12-01 19:46

rerpace(a,b)其中a是一个字符或字符串,是把目标字符串中的a替换为b

replaceAll(a,b)其中a是一个正则表达式,是把目标字符串中符合a这个正则的字符串替换为b

热心网友 时间:2024-12-01 19:46

replace没有用到正则表达式,而replaceAll会使用正则表达式进行替换(所以不想被正则表达式识别的元字符需要加上转义字符)。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大学中大德指什么 驾考各科通过率是多少 驾考全部一次过的比例 驾考宝典科目一通过率多少 驾考宝典通过率怎么算的 .js 文件和 .mjs 文件的区别 .js是什么文 苹果13在哪切换4G网络 苹果13怎么把5g换成4g?苹果13设置4g网络方法介绍 iphone13如何更改网络信号 iphone13手机5G设置成4G教程 没有了,微信钱包里的钱怎么找回来?17 一个人说我爱你,你该怎么幽默回答你也爱她57 为什么星星总出现在晚上??下雨天为什么没有星星?22 我对象在qq上对我表达爱意,我该怎么回复她,老司机教教我3 该怎样回复别人恭喜我爱情甜蜜1 为什么下雨天的晚上天上没有星星3 AUTO CAD 室内设计的问题,关于图中的那些,比如:衣柜,床,沙发。。。等... 研究生保送已经确认了,可以参加国考吗,要是公务员录取了,能不...3 我有朋友保研了 但是想参加国考 可以吗? 重庆什么地方取胎记最好 RZ200、RZ400、RZ600和RZ800这几个型号具体...2 ricoh RZ-800的电池 理光rz-800DATE相相上海什么地方修理? 信用卡逾期!打电话我家人,怎么办?151 朋友信用卡逾期还给打电话的人说我是他姐姐,这个我会不会承担责... 长江有哪些最有名的物产和典故53 同一部手机怎么申请两个?555 电脑桌上用,3寸全频跟4寸全频区别大吗3 关于家用全频喇叭的大小47 3寸或4寸喇叭的尺寸规格80 点火系统的作用及包括哪几种 电信光猫开启路由如何指定DNS服务器啊~100分紧急求助~不懂的请绕道_百... dnf怎么换职业195 别人信用卡逾期了 银行一直给我打电话 我用承担法律责任吗?11 长江的动物有名的有哪些?35 别人信用卡欠款,联系人填的我,该怎么办?127 信用卡逾期会影响办卡时填写的亲属人吗12 有人知道这个相机的型号吗?1 安桥rz800评测哪里有买 同事信用卡逾期,我确定不是他办卡时候填的联系人,但银行催收的...3 sonyericsson T707 听说有3G。。 孕期肚子发硬原因及解决方法 ...中的空缺部分填写完整)(1)探究影响浮力大小的因素: 猜想 潮汕话的来源?100 粤语为什么被一些人说成是古汉语呢?1723 中国古代文字演变过程2129 代表成都的经典诗句 王者荣耀帐号和密码是什么?70 ...的CAD安装包,可以发我一下吗。邮箱874786347@QQ.com谢谢啦!我的电 ... 怎么找回原来注册的?