Java: как получить индекс второго вхождения в массив или строку

Чтобы получить индекс второго вхождения определенного элемента в массив или строку Java, вы можете использовать несколько методов. Вот несколько подходов, которые вы можете рассмотреть:

  1. Использование цикла:
    Вы можете перебирать элементы массива или строки с помощью цикла и отслеживать количество вхождений. Как только вы найдете второе вхождение, вы сможете получить его индекс. Вот пример использования массива:
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
}
  1. Использование методов 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
}
  1. Использование регулярных выражений.
    Регулярные выражения можно использовать для поиска второго вхождения шаблона в строке. Вы можете использовать класс 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
}