Замена совпадений в Java
Метод replaceAll у Matcher подставляет
строку замены вместо каждого совпадения
с шаблоном. Шаблон задают при создании
объекта, исходный текст и замена передают
в вызов метода:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "123 456 789";
Pattern pattern = Pattern.compile("\\d");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("!");
System.out.println(res);
}
}
Сложную замену делают в цикле через
appendReplacement и appendTail:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "a1 b22";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(txt);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "[" + matcher.group() + "]");
}
matcher.appendTail(sb);
String res = sb.toString();
System.out.println(res);
}
}
Дана строка:
public class Main {
public static void main(String[] args) {
String txt = "aaa bbb 123 www";
}
}
Замените повторяющиеся подряд одинаковые
буквы на один символ "!".