JAVA REGEX TO SPLIT AND REVERSE STRING

Tanuj Kumar

Total Post:134

Points:940
Posted by  Tanuj Kumar
 2515  View(s)
Ratings:
Rate this:
I have a Java String "test/this/string" that I want to reverse to "string/this/test" using a regular expression or the most efficient Java algorithm. The way I know is to use the split method, loop over the array and rebuild the string manually. The number of "/" can vary and doesn't occur a fixed number of times. Any ideas?
  1. Pravesh Singh

    Post:101

    Points:709
    Re: Java RegEX To Split and Reverse String

    Hey Tanuja!

    Here's my take:

    String input = "test/this/string";
    List<String> list = Arrays.asList(input.split("(?=/)|(?<=/)"));
    Collections.reverse(list);
    StringBuilder sb = new StringBuilder();
    for (String s: list)
       sb.append(s);
    System.out.println(sb.toString());

    (?<=/) is a zero-length matching regex that matches if the previous character is a /.
    (?=/) is a zero-length matching regex that matches if the next character is a /.

    So (?=/)|(?<=/) matches right before and after each /, thus the split splits the string into"test", "/", "this", "/", "string".

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!