现在有一个需求,在一段字符串中查找出某段内容第N次出现的位置
比如说:在字符串 "Hello World"
中查找"l"
第二次出现的位置
具体代码如下
public static void main(String[] args) {
String str = "Hello World"; // 定义字符串 "Hello World"
String key = "l"; // 定义需要被查找的字符串
int findKey = 2; // 定义第N次出现
int index = 0; // 初始化索引位置
for (int i = 0; i < findKey; i++) {
// 使用 indexOf 来查找位置
if (index != 0) {
// 当索引值不为0时
// 用当前索引值加上新找出来的索引值加1
// 加1的原因是用indexOf找出来的索引是从0开始的
// 加1后才等于正常索引
index += str.indexOf(key) + 1;
} else {
// 当索引值为0时
// 说明第一次出现的位置在字符串的开头
// 只需要将其索引值赋值给index就行
index = str.indexOf(key);
}
if (i != findKey - 1) {
// 这里减1的原因是避免超出范围
str = str.substring(index);
}
}
System.out.println(index);
}