在Java中查找字符串中第二次出现的子字符串

Ama*_*ora 58 java string substring indexof

比方说,我们给了一个字符串,比如"itiswhatitis"一个子字符串"is".我需要在原始字符串中找到第二次出现'i'字符串的索引"is".

String.indexOf("is")在这种情况下将返回2.在这种情况下,我希望输出为10.

Roh*_*ain 129

使用重载版本indexOf(),它将起始索引(fromIndex)作为第二个参数:

str.indexOf("is", str.indexOf("is") + 1);
Run Code Online (Sandbox Code Playgroud)

  • 这很巧妙。 (2认同)

Jer*_*vel 28

int first = string.indexOf("is");
int second = string.indexOf("is", first + 1);
Run Code Online (Sandbox Code Playgroud)

此重载开始从给定索引中查找子字符串.

  • 然后没有什么特别的事情发生,它仍然需要第二次发生。 (2认同)
  • 第三次出现的索引呢! (2认同)
  • 怎么样?问题是找到第二次出现. (2认同)
  • @PravatPanda:我想您想知道如何发生第三次事件?然后,您可以继续Jeroen的答案中的代码,并添加第三个`string.indexOf(“ is”,second + 1);`,尽管最好使用返回第N个indexOf的方法。 (2认同)

To *_*Kra 27

我正在使用: Apache Commons Lang:StringUtils.ordinalIndexOf()

StringUtils.ordinalIndexOf("Java Language", "a", 2)
Run Code Online (Sandbox Code Playgroud)