У меня есть большая строковая переменная с именем text
. Я хочу иметь возможность проверить, содержит ли text
указанный searchString
(например, "test"), и вернуть все подстроки с windowSize
символами до и после совпадений.
Пример:
String windowSize = 5;
String text = "this is only a simple test. lorem impsum testing everything.";
String searchString = "test";
В результате я хочу следующий вывод:
mple test. lor
ssum testing e
Кроме того, было бы здорово иметь различные типы вывода:
Только до:
mple
ssum
Только после:
. lor
ing e
Решение
Благодаря Peter Lawrey и SubmittedDenied я получил свой ответ:
String windowSize = 5;
String text = "this is only a simple test. lorem impsum testing everything.";
String searchString = "test";
int i = -1;
while((i = text.indexOf(searchString, i+1)) > -1) {
System.out.println(text.substring(Math.max(0, i - windowSize), Math.min(i + searchString.length() + windowSize, text.length())));
}