当前位置:  开发笔记 > 编程语言 > 正文

如何替换字符串中的多个子字符串实例

如何解决《如何替换字符串中的多个子字符串实例》经验,为你挑选了1个好方法。

我需要在同一个地方替换不同内容的大字符串的一些内容.

让我们说我有一个字符串:

String str = "package blah.foo.bar;\n"
           + "import org.blah.blah;\n"
           + "import sel.this.that;\n"
           + "import sel.boo.foo;\n"
           + "...more text";

我想将这个单词gen插入到以开头import sel.为止的语句中,以便最终结果如下:import sel.gen.this.that;

我已经成功使用以下方法,但只有当我知道子字符串在字符串中的位置时.我的问题是,我不确定如何使以下代码动态:

private String modifyString(String str){
    String hold = str.substring(0, str.indexOf(";"));
    hold = new StringBuilder(hold).insert(13, "gen.").toString();
    str = str.replace("(?m)^package.*", hold);
    return str;

}

上面的代码正确替换字符串package blah.foo.bar;package blah.gen.foo.bar;

但这又一次只能替换字符串的开头部分.我希望能够保存子字符串的所有实例,然后在这些子字符串中插入子字符串.



1> Federico Pia..:

你可以使用一个简单的行:

str = str.replaceAll("import sel\\.", "import sel.gen.");

正则表达式演示

IdeOne的例子

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有