import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.HashMap;
public class Main
{
static void processString
(String line
) {
Pattern p = Pattern.compile("(1\\%?|2|3|4)"); // 5 Вариантов паттернов для теста
Matcher m = p.matcher(line); // Естественно в реальной задаче намного больше
HashMap
<String, String
> map
= new HashMap
<>();
int i = 0;
while (m.find()) {
// Здесь я ожидаю 5 итераций для каждого вхождения 1, 1%, 2, 3, 4 и замены их на ААА1, ААА1%, ААА2 и т.д.
i++;
System.
out.
println("Нужно заменить " + m.
group() + " на AAA" + i
); // Добавить $1 в хэшмап
// map.put(?)
line = m.replaceAll("AAA$1");
}
System.
out.
println("\n\n" + line
); }
public static void main
(String[] args
) {
processString(" 1 2 3 4 4 2 1% 1% 1 2 3 ");
}
}
aW1wb3J0IGphdmEudXRpbC5yZWdleC5NYXRjaGVyOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CmltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKCnB1YmxpYyBjbGFzcyBNYWluCnsKICAgc3RhdGljIHZvaWQgcHJvY2Vzc1N0cmluZyhTdHJpbmcgbGluZSkKICAgewogICAgICBQYXR0ZXJuIHAgPSBQYXR0ZXJuLmNvbXBpbGUoIigxXFwlP3wyfDN8NCkiKTsgLy8gNSDQktCw0YDQuNCw0L3RgtC+0LIg0L/QsNGC0YLQtdGA0L3QvtCyINC00LvRjyDRgtC10YHRgtCwCiAgICAgIE1hdGNoZXIgbSA9IHAubWF0Y2hlcihsaW5lKTsgICAgICAgICAgLy8g0JXRgdGC0LXRgdGC0LLQtdC90L3QviDQsiDRgNC10LDQu9GM0L3QvtC5INC30LDQtNCw0YfQtSDQvdCw0LzQvdC+0LPQviDQsdC+0LvRjNGI0LUKICAgICAgCiAgICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKICAgICAgCiAgICAgIGludCBpID0gMDsKICAgICAgd2hpbGUgKG0uZmluZCgpKSB7CiAgICAgIAkvLyDQl9C00LXRgdGMINGPINC+0LbQuNC00LDRjiA1INC40YLQtdGA0LDRhtC40Lkg0LTQu9GPINC60LDQttC00L7Qs9C+INCy0YXQvtC20LTQtdC90LjRjyAxLCAxJSwgMiwgMywgNCDQuCDQt9Cw0LzQtdC90Ysg0LjRhSDQvdCwINCQ0JDQkDEsINCQ0JDQkDElLCDQkNCQ0JAyINC4INGCLtC0LgogICAgICAJaSsrOwogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCd0YPQttC90L4g0LfQsNC80LXQvdC40YLRjCAiICsgbS5ncm91cCgpICsgIiDQvdCwIEFBQSIgKyBpKTsKICAgICAgICAgLy8g0JTQvtCx0LDQstC40YLRjCAkMSDQsiDRhdGN0YjQvNCw0L8KICAgICAgICAgLy8gbWFwLnB1dCg/KQogICAgICAgICBsaW5lID0gbS5yZXBsYWNlQWxsKCJBQUEkMSIpOwogICAgICB9CiAgICAgIAogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuXG4iICsgbGluZSk7CiAgIH0KICAgCiAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCiAgIHsKICAgICAgcHJvY2Vzc1N0cmluZygiIDEgIDIgIDMgIDQgIDQgIDIgIDElICAxJSAgMSAgMiAgMyAiKTsKICAgfQp9