获取带有公共分隔符的字符串的第n个子字符串

34gzjxbg  于 2022-09-21  发布在  其他
关注(0)|答案(1)|浏览(95)

我在一个时髦的Web控制台上工作,我想得到第三个也是最后一个由/分隔的子字符串。我已经能够使用lastIndexOf()获得最后一个子字符串,如果需要的话,也可以获得第一个子字符串,但我一直无法找到快速而简单的方法来获得/的第二个和第三个匹配项的索引,这样我就可以提取第三个子字符串。我希望从下面的代码中获得以下输出:

生产
苹果

在我的样例中,我当前打印的路径Delim只是为了检查是否正常,所以忽略它为什么会出现在那里。如果这是一个简单的问题,很抱歉,但我是Groovy的新手,主要来自SQL背景,在那里这将是一个简单而快速的任务。提前谢谢!

productPath = "Store/Grocery/Produce/Apples";

int pathDelim = productPath.lastIndexOf('/');
itemName = (productPath.substring(pathDelim + 1));

println pathDelim;
println itemName;
egmofgnx

egmofgnx1#

你有没有考虑过直接拆线?

​productPath.split('/')[2, 3].each {
    println it
}

打印所需的输出:

Produce
Apples

如果您需要所有可以执行的索引

​productPath.findIndexValues { it == '/' }

它会返回

[5, 13, 21]

相关问题