Как получить второй, третий и т.д. определенный символ?

Знаю звучит не особо понятно, поэтому я здесь.

В общем допустим у нас есть текст:

String str = "Just an example text";

Тут есть 3 символа "е". Как получить его положение нумерации? Я использовал indexOf, но получается либо первое, либо последнее(lastIndexOf), а именно определенное не знаю как.

=)


Ответы (1 шт):

Автор решения: Vadik

Вторым аргуметом в метод indexOf вы можете передать индекс fromIndex, начиная с которого нужно выполнить поиск символа.

Поэтому вашу задачу можно решить, последовательно вызвав indexOf три раза:

str.indexOf('e', str.indexOf('e', str.indexOf('e') + 1) + 1)

То же самое можно сделать в цикле, сделаем такой метод:

public static int indexOf(String s, char c, int n) {
    int fromIndex = -1;
    for (int i = 0; i < n; i++) {
        fromIndex = s.indexOf(c, fromIndex + 1);
    }
    return fromIndex;
}

Использование:

indexOf(str, 'e', 3)

Результат:

17
→ Ссылка