replace与replaceAll的区别

这两者有些人很容易搞混,因此我在这里详细讲述下。

replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);

replaceAll的参数是regex,即基于规则表达式的替换,比如:可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;

相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串;

不同点:replaceAll支持正则表达式,因此会对参数进行解析(两个参数均是),如replaceAll("\\d", "*"),而replace则不会,replace("\\d","*")就是替换"\\d"的字符串,而不会解析为正则。

另外还有一个不同点:“\”在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\" ) ;只打印出一个"\"。但是“\”也是正则表达式中的转义字符,需要用两个代表一个。所以:\\\\被java转换成\\,\\又被正则表达式转换成\,因此用replaceAll替换“\”为"\\",就要用replaceAll("\\\\","\\\\\\\\"),而replace则replace("\\","\\\\")。

如果只想替换第一次出现的,可以使用replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串。

原文地址:https://www.cnblogs.com/qiuhong10/p/8322158.html

时间: 2024-10-13 18:47:18

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)       —— 

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.toStri

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

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] =