import java.util.*;
import java.util.stream.*;
import java.util.regex.*;
import static java.
util.
Map.
entry;
class Ideone
{
public static Map
<Integer, String
> map
= Map.
ofEntries( entry(1, "один"),
entry(12, "двенадцать")
);
{
String s
= "Это стоит 1 бакс, а вот это - 12 ."; List<Integer> lst = new ArrayList<>(map.keySet());
String rx
= "\\b(" + String.
join("|", lst.
stream().
map(Object::toString
).
collect(Collectors.
toList())) + ")\\b"; //System.out.println( rx ); // => \b(1|12)\b
Pattern p1 = Pattern.compile(rx);
Matcher m = p1.matcher(s);
String result
= m.
replaceAll(x
-> map.
get(Integer.
parseInt(x.
group())) ); }
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS4qOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lio7CmltcG9ydCBzdGF0aWMgamF2YS51dGlsLk1hcC5lbnRyeTsgCgpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyBNYXA8SW50ZWdlciwgU3RyaW5nPiBtYXAgPSBNYXAub2ZFbnRyaWVzKAoJICAgIGVudHJ5KDEsICLQvtC00LjQvSIpLAoJICAgCWVudHJ5KDEyLCAi0LTQstC10L3QsNC00YbQsNGC0YwiKQoJKTsKCQoKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN0cmluZyBzID0gItCt0YLQviDRgdGC0L7QuNGCIDEg0LHQsNC60YEsINCwINCy0L7RgiDRjdGC0L4gLSAxMiAuIjsKCQlMaXN0PEludGVnZXI+IGxzdCA9IG5ldyBBcnJheUxpc3Q8PihtYXAua2V5U2V0KCkpOwoJCVN0cmluZyByeCA9ICJcXGIoIiArIFN0cmluZy5qb2luKCJ8IiwgbHN0LnN0cmVhbSgpLm1hcChPYmplY3Q6OnRvU3RyaW5nKS5jb2xsZWN0KENvbGxlY3RvcnMudG9MaXN0KCkpKSArICIpXFxiIjsKCQkvL1N5c3RlbS5vdXQucHJpbnRsbiggcnggKTsgLy8gPT4gXGIoMXwxMilcYgoJCVBhdHRlcm4gcDEgPSBQYXR0ZXJuLmNvbXBpbGUocngpOwoJCU1hdGNoZXIgbSA9IHAxLm1hdGNoZXIocyk7CgkJU3RyaW5nIHJlc3VsdCA9IG0ucmVwbGFjZUFsbCh4IC0+IG1hcC5nZXQoSW50ZWdlci5wYXJzZUludCh4Lmdyb3VwKCkpKSApOwoJCVN5c3RlbS5vdXQucHJpbnRsbiggcmVzdWx0ICk7Cgl9Cn0=