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] == oldChar) {
                }
        }
        (i < len) {
            buf[] = [len](j = j < ij++) {
                buf[j] = val[j]}
            (i < len) {
                c = val[i]buf[i] = (c == oldChar) ? newChar : ci++}
            String(buf)}
    }
    }

从源码中可以看出可以替换字符,当字符串中存在oldChar则替换所有的oldChar为newChar,并返回一个新字符串,原字符串不改变。如果不存在则返回原字符串的引用。

public String replace(CharSequence target,CharSequence replacement) {
    Pattern.(target.toString()Pattern.).matcher(
            ).replaceAll(Matcher.(replacement.toString()))}

replace 替换字符串时,是从字符串的开始往后匹配。例如: 替换"aa"为“b”,则“aaa”.repalce("aa","b") 返回的是"ba",而不是"ab"。这里可以看到,内部使用的replaceAll方法。当target或者replacement为null时,会报NullPointerException。这里依然是返回的是一个新字符串,原字符串不变(字符串的操作几乎都是不改变原字符串,有一个例外,但是忘了)。

public String replaceAll(String regex,String replacement) {
    Pattern.(regex).matcher().replaceAll(replacement)}

replaceAll替换的字符串,通过匹配正则表达式(注意转义字符‘\‘和‘$’,在字符串中的影响),当然给定的字符串也是正则表达式的一种,返回的依然是新的字符串。

时间: 2024-12-28 01:41:58

Java replace 和 replaceAll的相关文章

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 区别

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

Java replace &amp; replaceAll

Java字符串中需要对一些字符进行替换,用到最多的是replace和replaceAll两个方法.这两个方法在使用的时候需要注意: replace: public String replace (CharSequence target, CharSequence replacement) Added in API level 1 Returns a copy of this string after replacing occurrences of target replaced with re

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,replaceFirst

replace和replaceAll: 1.相同点: 替换所有匹配的字符串(都是替换所有) 2.不同点: replace支持字符替换,字符串替换 replaceAll是正则表达式替换 replaceFirst: 同replaceAll一样,也是基于规则表达式的替换 不同之处是:只替换第一次出现的字符串 对于正则表达式: 如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的 即:这两者也支持字符串的操作,但是!!

Replace和ReplaceAll的区别

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

java.lang.String.replaceAll(String regex, String replacement)使用注意

java.lang.String.replace()方法的参数可以是char类型或者CharSequence类型(String实现了CharSequence接口) java.lang.String.replaceAll(String regex, String replacement)方法的参数是正则表达式和要替换后的字符串,参数regex如果输入例如"+86"或者其他带有特殊字符的字符串则会报错,需要使用特殊符号的时候需要进行转义.

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