fork 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.util.regex.*;
  7. import java.util.stream.Collectors;
  8. import java.util.stream.Stream;
  9.  
  10. /* Name of the class has to be "Main" only if the class is public. */
  11. class Ideone
  12. {
  13. public static String plusOut(String str, String word) {
  14. String[] parts = str.split("(?=\\Q" + word + "\\E)+|(?<=\\Q" + word + "\\E)+", -1);
  15. StringBuilder sb = new StringBuilder(str.length());
  16. for (int i = 0; i < parts.length; i++) {
  17. sb.append(i % 2 == 0 ? parts[i].replaceAll(".", "+") : parts[i]);
  18. }
  19. return sb.toString();
  20. }
  21.  
  22. public static String plusOutP(String str, String word) {
  23. String[] parts = str.split(Pattern.quote(word), -1);
  24. StringBuilder sb = new StringBuilder(str.length());
  25. for (int i = 0; i < parts.length; i++) {
  26. if (i > 0) {
  27. sb.append(word);
  28. }
  29. sb.append(parts[i].replaceAll(".", "+"));
  30. }
  31. return sb.toString();
  32. }
  33.  
  34. public static String plusOut8(String str, String word) {
  35. return Stream.of(str.split("\\Q" + word + "\\E", -1))
  36. .map(fill -> fill.replaceAll(".", "+"))
  37. .collect(Collectors.joining(word));
  38. }
  39.  
  40. public static void main(String[] args) {
  41. String[] tests = {"Helloabcthereabchi", "monkey-monkeymonkey"};
  42. String word = "monkey";
  43. for (String s : tests) {
  44. System.out.printf("Input: %s\nJava7: %s\nJavaP: %s\nJava8: %s\n\n", s, plusOut(s, word), plusOutP(s, word), plusOut8(s, word));
  45. }
  46. }
  47. }
Success #stdin #stdout 0.18s 320576KB
stdin
Standard input is empty
stdout
Input: Helloabcthereabchi
Java7: ++++++++++++++++++
JavaP: ++++++++++++++++++
Java8: ++++++++++++++++++

Input: monkey-monkeymonkey
Java7: ++++++-++++++monkey
JavaP: monkey+monkeymonkey
Java8: monkey+monkeymonkey