fork download
  1. import java.util.*;
  2. import java.util.stream.*;
  3. import java.util.regex.*;
  4. import static java.util.Map.entry;
  5.  
  6. class Ideone
  7. {
  8. public static Map<Integer, String> map = Map.ofEntries(
  9. entry(1, "один"),
  10. entry(12, "двенадцать")
  11. );
  12.  
  13.  
  14. public static void main (String[] args) throws java.lang.Exception
  15. {
  16. String s = "Это стоит 1 бакс, а вот это - 12 .";
  17. List<Integer> lst = new ArrayList<>(map.keySet());
  18. String rx = "\\b(" + String.join("|", lst.stream().map(Object::toString).collect(Collectors.toList())) + ")\\b";
  19. //System.out.println( rx ); // => \b(1|12)\b
  20. Pattern p1 = Pattern.compile(rx);
  21. Matcher m = p1.matcher(s);
  22. String result = m.replaceAll(x -> map.get(Integer.parseInt(x.group())) );
  23. System.out.println( result );
  24. }
  25. }
Success #stdin #stdout 0.12s 36756KB
stdin
Standard input is empty
stdout
Это стоит один бакс, а вот это - двенадцать .