fork(3) download
  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3. import java.util.HashMap;
  4.  
  5. public class Main
  6. {
  7. static void processString(String line)
  8. {
  9. Pattern p = Pattern.compile("(1\\%?|2|3|4)"); // 5 Вариантов паттернов для теста
  10. Matcher m = p.matcher(line); // Естественно в реальной задаче намного больше
  11.  
  12. HashMap<String, String> map = new HashMap<>();
  13.  
  14. int i = 0;
  15. while (m.find()) {
  16. // Здесь я ожидаю 5 итераций для каждого вхождения 1, 1%, 2, 3, 4 и замены их на ААА1, ААА1%, ААА2 и т.д.
  17. i++;
  18. System.out.println("Нужно заменить " + m.group() + " на AAA" + i);
  19. // Добавить $1 в хэшмап
  20. // map.put(?)
  21. line = m.replaceAll("AAA$1");
  22. }
  23.  
  24. System.out.println("\n\n" + line);
  25. }
  26.  
  27. public static void main(String[] args)
  28. {
  29. processString(" 1 2 3 4 4 2 1% 1% 1 2 3 ");
  30. }
  31. }
Success #stdin #stdout 0.1s 27780KB
stdin
Standard input is empty
stdout
Нужно заменить 1 на AAA1


 AAA1  AAA2  AAA3  AAA4  AAA4  AAA2  AAA1%  AAA1%  AAA1  AAA2  AAA3