fork(1) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.net.URLEncoder;
  7.  
  8. public class Main
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. final String[] INPUT = new String[] {
  13. "<TEST>",
  14. " <NODE1>",
  15. " <VALUE> Test</VALUE>",
  16. " </NODE1>",
  17. " <NODE1>",
  18. " <VALUE> Test</VALUE>",
  19. " </NODE1>",
  20. "</TEST>"
  21. };
  22.  
  23. for (String str: INPUT) {
  24. System.out.println("NEW: " + htmlspecialchars(str));
  25. }
  26. }
  27.  
  28. private static String htmlspecialchars(String str) {
  29. return str
  30. .replaceAll("&", "&quot;")
  31. .replaceAll("<", "&lt;")
  32. .replaceAll(">", "&gt;")
  33. .replaceAll("(?<=^\\s*)\t", " ")
  34. .replaceAll("(?<=^\\s*) ", "&#09;")
  35. .replaceAll("(?<=^(?:&#09;)*) ", "&nbsp;");
  36. }
  37. }
Success #stdin #stdout 0.07s 3359744KB
stdin
Standard input is empty
stdout
NEW: &lt;TEST&gt;
NEW: &#09;&lt;NODE1&gt;
NEW: &#09;&#09;&nbsp;&lt;VALUE&gt;         Test&lt;/VALUE&gt;
NEW: &#09;&lt;/NODE1&gt;
NEW: &#09;&lt;NODE1&gt;
NEW: &#09;&#09;&lt;VALUE&gt;         Test&lt;/VALUE&gt;
NEW: &#09;&lt;/NODE1&gt;
NEW: &lt;/TEST&gt;