例:有一字符串aabbccfafgt,现需要寻找某字符串在改字符串中出现第n次的索引
如:返回出现第3次a的索引,正确应返回6;
返回出现第4次a的索引,正确应返回-1
解决方案:
方法一:使用indexOf
private static int indexOfTarget(String source, String target, int n) {
int index = source.indexOf(target);
int i = 0;
while (index != -1) {
index = source.indexOf(target, index + i);
i++;
if (i == n) {
break;
}
}
return index;
}
方法二:使用匹配(Pattern、Matcher)
private static int indexOfTarget(String source, String target, int n) {
Pattern pattern = Pattern.compile(target);
Matcher matcher = pattern.matcher(source);
int i = 0;
while (matcher.find()) {
i++;
if (i == n) {
break;
}
}
try {
return matcher.start();
} catch (IllegalStateException e) {
return -1;
}
}



