fork(3) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.util.regex.*;
  6. import java.io.*;
  7.  
  8. /* Name of the class has to be "Main" only if the class is public. */
  9. class Ideone
  10. {
  11. public static void main (String[] args) throws java.lang.Exception
  12. {
  13. var input = Arrays.asList("d", "a", "y / a", "a / z", "b / a / c", "a / c / a");
  14. Comparator<String> comparator = Comparator.comparingInt((String s) -> countMatches(s, "/"))
  15. .thenComparing(Comparator.naturalOrder());
  16. input.stream().sorted(comparator).forEach(System.out::println);
  17. }
  18.  
  19. private static int countMatches(String text, String what) {
  20. var matcher = Pattern.compile(what).matcher(text);
  21. var count = 0;
  22. while (matcher.find()) count++;
  23. return count;
  24. }
  25. }
Success #stdin #stdout 0.12s 34680KB
stdin
a/b 
a/b/c/
abcd
stdout
a
d
a / z
y / a
a / c / a
b / a / c