首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java与此同时替换多个字符串

2013-06-25 
java同时替换多个字符串例如,有一个字符串abcdefg现在的要求是把abc变成efg把efg变成xyz怎么搞?

java同时替换多个字符串
例如,有一个字符串"abcdefg"
现在的要求是把"abc"变成"efg"
把"efg"变成"xyz"
怎么搞?
即目标串为:"efgdxyz"
(PS:replaceAll会导致同步问题,就是说"abc"变成"efg"后,立刻又变成的"xyz")
[解决办法]
使用正则表达式逐个替换


    static void replace() {
        Pattern p = Pattern.compile("abc
[解决办法]
efg");
        Matcher m = p.matcher("abcdefg");
        StringBuffer sb = new StringBuffer();
        while (m.find()) {
            if(m.group().equals("abc")) m.appendReplacement(sb, "efg");
            else if(m.group().equals("efg")) m.appendReplacement(sb, "xyz");
        }
        m.appendTail(sb);
        System.out.println(sb.toString());
    }

[解决办法]
引用:
使用正则表达式逐个替换

    static void replace() {
        Pattern p = Pattern.compile("abc
[解决办法]
efg");
        Matcher m = p.matcher("abcdefg");
        StringBuffer sb = new StringBuffer();
        while (m.find()) {
            if(m.group().equals("abc")) m.appendReplacement(sb, "efg");
            else if(m.group().equals("efg")) m.appendReplacement(sb, "xyz");
        }
        m.appendTail(sb);
        System.out.println(sb.toString());
    }

正解+1

热点排行
Bad Request.