replace与replaceAll的区别

来源:互联网 发布:Mac笔记本可以连接Pc吗 编辑:程序博客网 时间:2024/06/05 01:53

1.replace
replace中的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2.replaceAll
replaceAll()中,第一个参数并不是普通意义上的字符串, 而是一个正则表达式; 意思是将对象中与第一个参数所表示的正则表达式相匹配的地方用第二个参数所表示的字符串替换。

相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串;
不同点:replaceAll支持正则表达式,因此会对参数进行解析(两个参数均是),如replaceAll(“\d”, ““),而replace则不会,replace(“\d”,”“)就是替换”\d”的字符串,而不会解析为正则。

需要注意的是:Java中反斜杠“\”是一个特殊字符, 表示转义.。比如你想输出两个引号:” “, 那么你在字符串中就需要这样写:\” \”, 因为” 在java中是特殊字符,需要被转义才行.。同样, 如果你想输出一个 \, 那么你需要在字符串中这样写: \, 其中第一个反斜杠表示转义,这样就使得后面的反斜杠具有最一般的意思。

 String test = "ab1993cd0812cc"; test = test.replace("a", "b"); System.out.println(test);

这里把字符串中的“a”替换成“b”;

String test = "ab1993cd0812cc";test = test.replaceAll("a", "BBQ");System.out.println(test);

这里把字符传中的“a”替换成“BBQ”;

其实这两个方法在使用时根据你的需求可以很好的区分要使用哪一种,如果只需要替换其中一个字符或字符串使用replace,如果是替换规则比较明显的字符串使用replaceAll,然后可以去看正则表达式

0 0
原创粉丝点击