replace 和 replaceAll 的区别

replace 和 replaceAll 都是Java 中常用的替换字符串的方法

replace :

public String replace(CharSequence target, CharSequence replacement) {

return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(

this).replaceAll(Matcher.quoteReplacement(replacement.toString()));

}

replaceAll:

public String replaceAll(String regex, String replacement) {

return Pattern.compile(regex).matcher(this).replaceAll(replacement);

}

区别: 参数不同,replace 的参数是char 和CharSequence(字符串序列) ,即可以支持字符的替换,也支持字符串的替换,而replaceAll 的参数是regex,即基于正则表达式的替换,比如可以通过replaceAll("d","*") 把一个字符串中的所有数字字符替换为星号

相同点: 都是全部替换, 如果只想替换第一次出现的可以使用replaceFirest() ,这个方法也是基于正则表达式的替换, 但与replaceAll 不同的是, 只替换第一次出现的字符串

还需要注意的一点是执行了替换之后源字符串是没有发生改变的

1、常用元字符

. 表示除了换行符之外任意一个字符
\s 空格字符(空格键、tab、换行、回车)
\S 非空格字符([^\s])
\d 一个数字,(相当于[0-9])
\D 一个非数字的字符,(相当于[^0-9])
\w 一个单次字符(word character)(相当于[a-zA-Z0-9]还有下划线)
^ 一行的开始
$ 一行的结尾
\b 一个单词的边界
\B 一个非单词的边界
[] 匹配方括号内的一个字符,例如:[abc]表示字符a,b,c中的任意一个(与a|b|c相同)
[^x] 匹配除了x 以外的任意字符
[^aeiou] 匹配除了aeiou 这几个字母以外的任意字符

2、表示次数的元字符(限定符)

* 重复零次或更多次
例如:a*匹配零个或者多个a
+ 重复一次或更多次
例如:a+匹配一个或者多个a
? 重复零次或一次
例如:a?匹配零个或者一个a
{n} 重复n次
例如:a{4}匹配4个a
{n,} 重复n次或更多次
例如:a{4,}匹配至少4个a
{n,m} 重复n到m次
例如:a{4,10}匹配4-10个a

3、正则表达式定位符


^

^hell

定位符规定匹配模式必须出现在目标字符串开头
hello、hellboy

$

ar$

定位符规定匹配模式必须出现在目标字符串结尾
car、bar

\b

\bbom、man\b

定位符规定匹配模式必须出现在目标字符串开头或结尾两个边界之一
bomb、human/woman

\B

\Bjava\B

定位符规定匹配模式必须出现在目标字符串开头和结尾两边界之内
ForjavaEJB

4、常用正则表达式

1、中文字符的匹配

正则表达式支持Unicode码,汉字范围可使用Unicode来表示

·[\u4E00-\u9FA5]汉字

·[\uFE30-\uFFA0]全角字符

·[^\x00-\xff]匹配双字节字符(包括汉字在内)

详细了解正则表达式可以查看博客 https://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

原文地址:https://www.cnblogs.com/hellovoyager1/p/9120949.html

时间: 2024-12-18 17:41:40

replace 和 replaceAll 的区别的相关文章

Replace和ReplaceAll的区别

先澄清几个误区 1.CharSequence 不是 Char :有些小朋友根据参数的类型选择Replace或ReplaceAll方法 2.Replace 和 ReplaceAll :并不是有些小朋友想象的Replace只替代一个出现的字符,ReplaceAll 替换所有字符 3.循环替换的误区 String eventJson = "............."; Iterator<Entry<String, String>> itPro = map.entry

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

例如有如下x的字符串 String x = "[kllkklk\\kk\\kllkk]";要将里面的“kk”替换为++,可以使用两种方法得到相同的结果 replace(CharSequence target, CharSequence replacement)       ——          x.replace("kk", "++") replaceAll(String regex, String replacement)       —— 

JAVA中REPLACE和REPLACEALL的区别(转)

replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:  1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串); 2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号; 相同点是都是全部替换,即把源字符串中的某一字

Java中replace和replaceall的区别

1>replace的参数是char和CharSequence,既可以支持字符替换,也可以支持字符串替换. 2>replaceall参数是regex, replacement,regex表示是正则表达式. String str = "wel2come3Souhe";  String str1 = str.replace("e", "E");  String str3 = str.replace('e', 'E');  System.ou

replace与replaceAll的区别

这两者有些人很容易搞混,因此我在这里详细讲述下. replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串): replaceAll的参数是regex,即基于规则表达式的替换,比如:可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号: 相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串: 不同点

String对象中的replace和replaceAll的区别?

replace方法:支持字符和字符串的替换. public String replace(char oldChar, char newChar) public String replace(CharSequence target, CharSequence replacement) replaceAll方法:基于正则表达式的字符串替换. public String replaceAll(String regex, String replacement) 测试代码: String str = "H

JAVA中替换字符的方法replace和replaceAll 区别

replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;相同点是都是全部替换,即把源字符串中的某一字符或字符

java replace和replaceAll

replace和replaceAll是JAVA中常用的替换字符的方法 public String replace(char oldChar, char newChar)         在字符串中用newChar字符替代oldChar字符,返回一个新的字符串 public String replaceAll(String regex,String replacement)使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串. 区别: 1)replace的参数是

Java replace 和 replaceAll

Java String 的replace 和replaceAll 都是用来替换srcString的subString,但是有些不同的是,replace的参数是字符或者字符串,而replaceAll的参数可以是正则表达式. public String replace (Char old,Char newChar) {     (oldChar != newChar) {         len = .i = -[] val = (++i < len) {             (val[i] =