Я предпочитаю использовать подход регулярного выражения здесь с чередованием:
String line = "I`ve got a Pc";
String[] array = new String[2];
array[0] = "Example sentence";
array[1] = "Pc";
List<String> terms = Arrays.asList(array).stream()
.map(x -> Pattern.quote(x)).collect(Collectors.toList());
String regex = ".*\\b(?:" + String.join("|", terms) + ")\\b.*";
if (line.matches(regex)) {
System.out.println("MATCH");
}
Точное регулярное выражение, которое генерирует приведенный выше фрагмент:
.*\b(?:Example sentence|Pc)\b.*
То есть мы формируем чередование содержит все ключевые слова, которые мы хотим найти во входной строке. Затем мы используем это регулярное выражение с String#matches
.