Главная chevron_right Переменные и константы chevron_right Типы данных chevron_right lastIndexOf()

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 — она только читает её содержимое.