lastIndexOf()
lastIndexOf() ищет последнее вхождение символа или подстроки в объекте String, просматривая строку справа налево, и возвращает индекс совпадения или -1.
Полная статья
Описание
lastIndexOf() позволяет найти последнее вхождение символа или подстроки в строке. В отличие от indexOf(), который ищет слева направо, эта функция просматривает строку справа налево — то есть возвращает позицию самого последнего совпадения.
Если передать второй параметр from, поиск начнётся не с конца строки, а с указанного индекса и пойдёт влево. Это удобно, когда нужно перебрать все вхождения одного символа или найти предпоследнее совпадение.
Синтаксис
myString.lastIndexOf(val)myString.lastIndexOf(val, from)
Параметры
myString: переменная типаString— строка, в которой выполняется поиск.val: то, что ищем. Допустимые типы:char(одиночный символ) илиString(подстрока).from: позиция, с которой начинается поиск в обратном направлении. Символы правее этого индекса не проверяются.
Возвращает
Индекс (позицию) последнего вхождения val в строке — или -1, если совпадение не найдено. Индексы отсчитываются от нуля.
Где применяется
- Разбор строк с разделителями — например, найти последнюю косую черту в пути к файлу, чтобы выделить имя файла.
- Валидация формата — проверить, что строка заканчивается нужным суффиксом или символом.
- Перебор всех вхождений — вызывать
lastIndexOf()в цикле, каждый раз передавая вfromнайденный индекс минус один, пока функция не вернёт-1. - Работа с командами по Serial — найти последний пробел в принятой строке, чтобы отделить команду от аргумента.
Практические замечания
- Если
fromбольше или равен длине строки, поиск начинается с последнего символа — то есть ведёт себя так же, как вызов безfrom. - Если
fromравен0, проверяется только первый символ строки. - Возвращаемое значение
-1означает отсутствие совпадения, а не ошибку. Всегда проверяйте результат перед тем, как использовать его как индекс. - Поиск чувствителен к регистру:
'A'и'a'— разные символы. - Функция не изменяет исходную строку
myString— она только читает её содержимое.