Java 如何查找字符串中字符的第n个出现?

也就是说,如何从字符串中找到第n个出现的字符/字符串的索引?

例如: “ / folder1 / folder2 / folder3 / ”。在这种情况下,如果我要求第三次出现斜杠(/),它会出现在folder3之前,并且我希望返回该索引位置。我的实际意图是从字符的第n次出现开始对它进行子串化。

Java API中是否有任何方便/易于使用的方法,还是我们需要自己编写一个小的逻辑来解决这个问题?

也,

我迅速在Apache Commons Lang的StringUtils中搜索是否为此目的支持任何方法,但没有找到任何方法。

正则表达式可以在这方面有所帮助吗?

回答:

如果你的项目已经依赖于Apache Commons StringUtils.ordinalIndexOf,则可以使用,否则,这里是一个实现:

public static int ordinalIndexOf(String str, String substr, int n) {

int pos = str.indexOf(substr);

while (--n > 0 && pos != -1)

pos = str.indexOf(substr, pos + 1);

return pos;

}

以上是 Java 如何查找字符串中字符的第n个出现? 的全部内容, 来源链接: utcz.com/qa/428265.html

回到顶部