获取分隔符第二次出现后的整个子字符串(包括分隔符)

Aja*_*mar -1 java

我有一个字符串( NOTPathFile-path ),如下所示:

String str1 = "/first/second/third/fourth/fifth";
String str2 = "/foo/bar/blah";
Run Code Online (Sandbox Code Playgroud)

给出:字符串始终以前导斜杠开头,并且保证至少有两个斜杠(也可以更多,如上所述)以及后面的一些子字符串。

现在我试图捕获整个子字符串"after-first-two-slashes"。这样我的输出就变成:

Output:
str1_becomes = /second/third/fourth/fifth
str2_becomes = /bar/blah
Run Code Online (Sandbox Code Playgroud)

请注意,我也想保留前导斜杠。我应该采取什么有效的方法来实现它?需要一些指示/线索,因为在这里感觉迷失了。最好是基于java 1.8+。

dan*_*1st 5

您可以使用简单的字符串操作轻松地完成此操作。

如果字符串始终以斜杠开头并且有两个斜杠,则可以仅使用 indexOf 来查找第二个斜杠的位置:

str1.indexOf('/',1);
Run Code Online (Sandbox Code Playgroud)

这将查找从第二个字符开始的第一个斜杠。

之后,您可以使用 substring 来获取结果字符串(从您刚刚找到的索引开始):

str1.substring(str1.indexOf('/',1));
Run Code Online (Sandbox Code Playgroud)

如果第一个斜杠不一定是第一个字符,您可以使用indexOf搜索第一个斜杠,并使用该结果+1作为搜索第二个斜杠的起始索引:

str1.substring(str1.indexOf('/',str1.indexOf('/'))); 
Run Code Online (Sandbox Code Playgroud)