Java-строка lastIndexOf()

String.lastIndexOf() возвращает последний индекс указанного символа(ов) или подстроки. Если аргумент не найден в строке, метод возвращает -1. Обратите внимание, что индексы для строки начинаются с нуля.

1. API String.lastIndexOf()

Метод lastIndexOf() имеет четыре перегруженные формы.

int lastIndexOf(String substring)int lastIndexOf(String substring, int fromIndex)int lastIndexOf(int ch)int lastIndexOf(int ch, int fromIndex)

Аргументы метода:

  • подстрока или символ: подстрока или символ, которые необходимо найти.
  • fromIndex: поиск начинается с указанного места в строке.

Метод возвращает индекс последнего вхождения указанной подстроки или -1, если такого вхождения нет.

2. Пример String.lastIndexOf()

В следующей программе Java подстрока «Java» появляется дважды. Когда мы ищем строку с помощью lastIndexOf(), она возвращает позицию последней строки «Java». Буква «J» хранится в индексной позиции 41, что мы можем проверить, выполнив поиск символа «J».

String str = "Hello world Java programmers, welcome to Java world !";Assertions.assertEquals(41, str.lastIndexOf("Java"));Assertions.assertEquals(41, str.lastIndexOf('J'));

Предположим, что мы хотим найти подстроку из определенной позиции в строке. Например, мы хотим узнать расстояние слова «Java» от запятой. Мы можем передать позицию запятой в качестве второго аргумента метода. На этот раз «Java» находится в позиции индекса 12.

String str = "Hello world Java programmers, welcome to Java world !";Assertions.assertEquals(12, str.lastIndexOf("Java", str.indexOf(",")));Assertions.assertEquals(12, str.lastIndexOf('J', str.indexOf(",")));

3. Нулевые и пустые строки

Передача нулевого аргумента в lastIndexOf() не допускается и приведет к исключению NullPointerException.

Assertions.assertThrows(NullPointerException.class,()->{str.lastIndexOf(null);});

Положение пустой строки всегда считается концом строки, а метод возвращает значение, вычисленное с помощью String.length().

Assertions.assertEquals(str.length(), str.lastIndexOf(""));

Ссылка: документация по Java String

Исходный код на Github

Прокрутить вверх