Чтобы получить индекс второго вхождения определенного элемента в массив или строку Java, вы можете использовать несколько методов. Вот несколько подходов, которые вы можете рассмотреть:
- Использование цикла:
Вы можете перебирать элементы массива или строки с помощью цикла и отслеживать количество вхождений. Как только вы найдете второе вхождение, вы сможете получить его индекс. Вот пример использования массива:
public static int getIndexOfSecondOccurrence(int[] array, int target) {
int count = 0;
for (int i = 0; i < array.length; i++) {
if (array[i] == target) {
count++;
if (count == 2) {
return i;
}
}
}
return -1; // If the second occurrence is not found
}
- Использование методов
indexOfиsubstring(для строк):
Если вы имеете дело со строкой, вы можете использоватьindexOfдля поиска первого вхождения подстроки, а затем поиска второго вхождения, начиная с индекса первого вхождения. Вот пример:
public static int getIndexOfSecondOccurrence(String str, String target) {
int firstIndex = str.indexOf(target);
if (firstIndex != -1) {
int secondIndex = str.indexOf(target, firstIndex + 1);
if (secondIndex != -1) {
return secondIndex;
}
}
return -1; // If the second occurrence is not found
}
- Использование регулярных выражений.
Регулярные выражения можно использовать для поиска второго вхождения шаблона в строке. Вы можете использовать классMatcherиз пакетаjava.util.regex. Вот пример:
import java.util.regex.*;
public static int getIndexOfSecondOccurrence(String str, String pattern) {
Pattern regex = Pattern.compile(pattern);
Matcher matcher = regex.matcher(str);
int count = 0;
while (matcher.find()) {
count++;
if (count == 2) {
return matcher.start();
}
}
return -1; // If the second occurrence is not found
}