如何在字符串中找到字符的第n次出现?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

我正在寻找Java解决方案。也就是说,如何从字符串中找到第n个字符/字符串出现的索引?

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

在Java API中是否有任何方便/准备使用的方法,或者我们是否需要自行编写一个小逻辑来解决这个问题?问题:

  1. 我很快搜索了Apache Commons Lang的StringUtils是否支持此方法,但是我没有找到任何方法。
  2. 正则表达式在这方面可以提供帮助吗
提问于
用户回答回答于
用户回答回答于

如果你的项目已经依赖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;
}

扫码关注云+社区

领取腾讯云代金券