文档章节

java --replace与replaceAll的区别

求是科技
 求是科技
发布于 2016/10/03 21:51
字数 178
阅读 9
收藏 0

#1.replace(char oldChar, char newChar),字符替换
很明显只能替换单个字符,源码如下,很简单,大家都看得懂

    public String replace(char oldChar, char newChar) {
        if (oldChar != newChar) {
            int len = value.length;
            int i = -1;
            char[] val = value; /* avoid getfield opcode */

            while (++i < len) {
                if (val[i] == oldChar) {
                    break;
                }
            }
            if (i < len) {
                char buf[] = new char[len];
                for (int j = 0; j < i; j++) {
                    buf[j] = val[j];
                }
                while (i < len) {
                    char c = val[i];
                    buf[i] = (c == oldChar) ? newChar : c;
                    i++;
                }
                return new String(buf, true);
            }
        }
        return this;
    }

#2.replace(CharSequence target, CharSequence replacement)
字符串替换,源码如下

    public String replace(CharSequence target, CharSequence replacement) {
        return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(
                this).replaceAll(Matcher.quoteReplacement(replacement.toString()));
    }

#3.replaceAll(String regex, String replacement)
字符串替换,支持正则表达式,源码如下

    public String replaceAll(String regex, String replacement) {
        return Pattern.compile(regex).matcher(this).replaceAll(replacement);
    }

© 著作权归作者所有

共有 人打赏支持
求是科技
粉丝 91
博文 439
码字总数 226317
作品 0
成都
后端工程师
私信 提问
java string 字符串替换

i、replace方法 该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如: String s = “abcat”; String s1 = s.replace(...

如风达
2015/07/08
0
1
Java中应该注意的一些特殊字符

replace ,replaceAll 两者都是由正则表达式类库实现的,但是 replace 采用的是字符串原有的意思来替换,而replaceAll 则是按照正则表达式的字符串来替换,正则表达式中有 15 个元字符,是有特...

天天顺利
2015/05/05
0
0
Java replace 和 replaceAll

Java String 的replace 和replaceAll 都是用来替换srcString的subString,但是有些不同的是,replace的参数是字符或者字符串,而replaceAll的参数可以是正则表达式。 public String replace ...

Endeavour
2015/08/20
0
0
javascript中的replaceAll

js的String有一个replace方法,只能对str进行一次替换,假如你的str里有多个相同的需要替换的oldStr,它只能替换第一个,这时候就需要一个类似JAVA中的replaceAll的方法。这里提供一个自己封...

greenpig
2012/05/30
0
2
String字符串替换的一个诡异问题

将字符串中的数字替换成$D 希望将以下字符串中的数字替换为$D字符 引用 ab1cd2 我们知道String有3个用于字符替换的方法,分别是: String replace(CharSequence target, CharSequence repla...

stamen
2015/08/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-7(静态代理和JDK代理)

静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理...

白话
46分钟前
6
0
Flink Window

1.Flink窗口 Window Assigner分配器。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。 一种经典的窗口分类可以分成: 翻...

满小茂
47分钟前
3
0
my.ini

1

architect刘源源
今天
6
0
docker dns

There is a opensource application that solves this issue, it's called DNS Proxy Server It's a DNS server that solves containers hostnames, if could not found a hostname that mat......

kut
今天
7
0
寻找数学的广度——《这才是数学》读书笔记2700字

寻找数学的广度——《这才是数学》读书笔记2700字: 文|程哲。数学学习方式之广:国内外数学教育方面的专家,进行了很多种不同的数学学习方式尝试,如数学绘本、数学游戏、数学实验、数学步道...

原创小博客
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部