Я повторяю свою строку через массив фраз с помощью этого кода:
public boolean checkName(String nameInputed, ArrayList<String> phraseList) {
boolean match = false;
for (String phrase : phraseList) {
if (nameInputed.matches(".*" + phrase + ".*")) {
result = true;
}
}
return match ;
}
Мне интересно, есть ли более быстрый способ проверить большой список фраз.
Я не знал, что такое существует, ха-ха, я попробую.
Что о...
public boolean checkName(String nameInputed, java.util.List<String> phraseList) {
return phraseList.stream()
.filter(phrase -> nameInputed.contains(phrase))
.findFirst()
.isPresent();
}
И если вы не хотите использовать потоковый API, как насчет...
public boolean checkName(String nameInputed, java.util.List<String> phraseList) {
for (String phrase : phraseList) {
if (nameInputed.contains(phrase)) {
return true;
}
}
return false;
}
Как @user16320675 предложил в этом комментарий
public boolean checkName(String nameInputed, java.util.List<String> phraseList) {
return phraseList.stream()
.anyMatch(phrase -> nameInputed.contains(phrase));
}
stream творил чудеса с моим кодом, спасибо!
Метод содержит в классе
java.lang.String
?