Мне нужно заменить часть содержимого большой строки другим содержимым в том же месте.Как заменить несколько экземпляров подстроки в строке
Допустим, у меня есть строка:
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;
Но опять-таки это работает только с заменой начальной части строка. Я ищу, чтобы иметь возможность хранить все экземпляры подстроки, а затем вставлять подстроку в эти подстроки.
Спасибо. Я слишком долго смотрел на это! –
@ panthor314 рад помочь. –