Строка Java indexOf()

Научитесь находить местоположение символа или подстроки в заданной строке, используя метод String.indexOf(). IndexOf() — это стандартный подход для поиска подстрок, а метод indexOf() доступен почти во всех языках программирования.

Если нам не нужно местоположение подстроки, а нужна только проверка наличия подстроки, то рассмотрите возможность использования API String.contains().

1. API String.indexOf()

String.indexOf() в Java возвращает индексное местоположение указанного символа или строки. Метод indexOf() является перегруженным методом и принимает два аргумента:

  • подстрока или ch: подстрока, которую необходимо найти в текущей строке.
  • fromIndex: начальная позиция, с которой начинается поиск в текущей строке.
int indexOf(String substring)int indexOf(String substring, int fromIndex)int indexOf(int ch)int indexOf(int ch, int fromIndex)

Если символ или подстрока аргумента не найдены в строке, метод возвращает -1.

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

Давайте рассмотрим несколько примеров, чтобы лучше понять indexOf().

2.1 Найти местоположение подстроки

В следующем примере мы проверяем, существует ли подстрока «World» в данной строке. Если существует, то в каком индексе находится подстрока?

Java String.indexOf()

Подстрока найдена в позиции индекса 6, и метод indexOf() возвращает 6.

String str = "Hello World";Assertions.assertEquals(6, str.indexOf("World"));

2.2 Найти подстроку из индекса

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

В следующем примере символ «о» присутствует в индексных позициях 4 и 7. Предположим, что нам нужно пропустить первые 5 символов, и только после этого мы сможем искать символ «о».

Строка Java indexOf()1

Как и ожидалось, метод indexOf() возвращает 7, поскольку это первое вхождение символа «o» после позиции индекса 5.

Assertions.assertEquals(7, str.indexOf('o', 5));

3. NULL не допускается

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

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

Ссылка: Java String Doc

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

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