Advertise with us

Java RegEX To Split and Reverse String

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?
Last updated:9/28/2013 6:48:54 AM

1 Answers

Pravesh Singh
Pravesh Singh

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".

Last updated:9/28/2013 6:48:54 AM

Answer