Научитесь находить местоположение символа или подстроки в заданной строке, используя метод 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» в данной строке. Если существует, то в каком индексе находится подстрока?

Подстрока найдена в позиции индекса 6, и метод indexOf() возвращает 6.
String str = "Hello World";Assertions.assertEquals(6, str.indexOf("World"));
2.2 Найти подстроку из индекса
Могут быть случаи, когда мы хотим найти подстроку, но только после определенного количества символов. В таких случаях мы можем передать второй аргумент fromIndex, который пропускает указанное количество символов, а затем начинает поиск с подстроки или символа.
В следующем примере символ «о» присутствует в индексных позициях 4 и 7. Предположим, что нам нужно пропустить первые 5 символов, и только после этого мы сможем искать символ «о».

Как и ожидалось, метод 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