javastringjava-8substring

Get substring between "first two" occurrences of a character


I have a String:

 String thestra = "/aaa/bbb/ccc/ddd/eee";

Every time, in my situation, for this Sting, a minimum of two slashes will be present without fail.

And I am getting the /aaa/ like below, which is the subString between "FIRST TWO occurrences" of the char / in the String.

 System.out.println("/" + thestra.split("\\/")[1] + "/");

It solves my purpose but I am wondering if there is any other elegant and cleaner alternative to this?

Please notice that I need both slashes (leading and trailing) around aaa. i.e. /aaa/


Solution

  • Scanner::findInLine returning the first match of the pattern may be used:

    String thestra = "/aaa/bbb/ccc/ddd/eee";
    System.out.println(new Scanner(thestra).findInLine("/[^/]*/"));
    

    Output:

    /aaa/