РЕДАКТИРОВАТЬ: Вот обновление с использованием потокового API Java 8. Так много чище. Можно комбинировать и с регулярными выражениями.
public static boolean stringContainsItemFromList(String inputStr, String[] items) {
return Arrays.stream(items).parallel().anyMatch(inputStr::contains);
}
Кроме того, если мы изменим тип ввода на List вместо массива, мы можем использовать items.parallelStream().anyMatch(inputStr::contains)
.
Вы также можете использовать .filter(inputStr::contains).findAny()
, если хотите вернуть соответствующую строку.
Оригинальный слегка датированный ответ:
Вот (ОЧЕНЬ ОСНОВНОЙ) статический метод. Обратите внимание, что в строках сравнения он чувствителен к регистру. примитив способ сделать его нечувствительным к регистру - это вызвать toLowerCase()
или toUpperCase()
как для входной, так и для тестовой строки.
Если вам нужно сделать что-то более сложное, чем это, я бы порекомендовал взглянуть на классы Pattern и Matcher и научиться делать некоторые регулярные выражения. Как только вы поймете это, вы можете использовать эти классы или вспомогательный метод String.matches()
.
public static boolean stringContainsItemFromList(String inputStr, String[] items)
{
for(int i =0; i < items.length; i++)
{
if(inputStr.contains(items[i]))
{
return true;
}
}
return false;
}