在分隔符出现第2次之后获取整个子字符串,包括分隔符



我有一个字符串(s)(不是PathFile-path)如下:

String str1 = "/first/second/third/fourth/fifth";
String str2 = "/foo/bar/blah";

给定:字符串总是以斜杠开头,并且保证至少有两个斜杠(也可以更多,如上所述),然后是一些子字符串。

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

Output:
str1_becomes = /second/third/fourth/fifth
str2_becomes = /bar/blah

请注意,我也想保留前面的斜杠。我应该遵循什么有效的方法来实现它?我在这里迷路了,需要一些方向/线索。最好基于java 1.8+。

您可以使用简单的字符串操作轻松地做到这一点。

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

str1.indexOf('/',1);

查找以第二个字符开头的第一个斜杠。

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

str1.substring(str1.indexOf('/',1));

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

str1.substring(str1.indexOf('/',str1.indexOf('/')));