Если требуется найти слово или подстроку, хорошим решением будет использовать оператор контроля из инструментария регулярных выражений. Он незаменим в случаях, если вам требуется найти что-нибудь, следующее за чем-нибудь еще.
Простой пример
String str = "программируем"; Pattern p = Pattern.compile(".*программ(?=ируем).*"); Matcher m = p.matcher(str); if(m.matches()){ System.out.println("Нашел!"); }else{ System.out.println("Не нашел!"); }
1. Поиск спереди
В примере выше, если нужно найти "программируем", но не надо искать "программирую", следует использовать следующий паттерн: .*программ(?=ируем).* ?= – поиск спереди на наличие слова/части слова; ?! – поиск спереди на отсутствие слова/части слова.
2. Поиск сзади
Поиск сзади работает схожим образом. Нужно использовать ?<= для поиска на наличие слова/части слова сзади и ?.*(?<=программ)ируем.* Слово «программируем» соответствует данному шаблону, а слово «полируем» – нет.