fork download
  1. import java.util.*;
  2. import java.util.regex.*;
  3. import java.util.stream.*;
  4.  
  5. /* Name of the class has to be "Main" only if the class is public. */
  6. class Ideone {
  7. public static void main(String[] args) throws java.lang.Exception {
  8. Map<String, String> replacements = new HashMap<>();
  9. replacements.put("\\u003C", "<");
  10. replacements.put("\\u003E", ">");
  11.  
  12. String data = "!Hello, \\u003C is my string \\u003E*";
  13.  
  14. Pattern p =
  15. Pattern.compile(
  16. replacements.keySet().stream().map(Pattern::quote).collect(Collectors.joining("|")));
  17.  
  18. StringBuilder sb = new StringBuilder(data.length());
  19. Matcher m = p.matcher(data);
  20. int prev = 1;
  21. while (m.find()) {
  22. sb.append(data, prev, m.start());
  23. sb.append(replacements.get(m.group()));
  24. prev = m.end();
  25. }
  26. sb.append(data, prev, data.length() - 1);
  27.  
  28. System.out.println(data);
  29. System.out.println(sb);
  30. }
  31. }
  32.  
Success #stdin #stdout 0.13s 4386816KB
stdin
Standard input is empty
stdout
!Hello, \u003C is my string \u003E*
Hello, < is my string >