fork download
  1. import java.util.*;
  2. import java.util.regex.*;
  3. import java.util.stream.Collectors;
  4.  
  5. class Ideone {
  6. public static void main(String[] args) {
  7. Map<String, String> mappings = new HashMap<>();
  8. mappings.put("ck","k");
  9. mappings.put("dd","wr");
  10. mappings.put("f", "m");
  11. System.out.println(replace("odd flock", mappings)); // prints: owr mlok
  12. }
  13. private static String replace(String input, Map<String, String> mappings) {
  14. Matcher m = Pattern.compile(toRegex(mappings.keySet())).matcher(input);
  15. while (m.find())
  16. m.appendReplacement(buf, Matcher.quoteReplacement(mappings.get(m.group())));
  17. return m.appendTail(buf).toString();
  18. }
  19. private static String toRegex(Collection<String> keys) {
  20. return keys.stream().map(Pattern::quote).collect(Collectors.joining("|"));
  21. }
  22. }
Success #stdin #stdout 0.15s 4386816KB
stdin
Standard input is empty
stdout
owr mlok