Я новичок в Kotlin (у меня есть опыт работы с Java), и я не могу понять, как проверить, содержит ли строка совпадение из списка ключевых слов.
Что я хочуdo проверяет, содержит ли строка совпадение из массива ключевых слов (без учета регистра) .Если это так, распечатайте ключевое слово (слова), которое соответствует, и строку, содержащую ключевое слово.(Я буду перебирать кучу строк в файле).
Вот MVE для начинающих:
val keywords = arrayOf("foo", "bar", "spam")
fun search(content: String) {
var match = <return an array of the keywords that content contained>
if(match.size > 0) {
println("Found match(es): " + match + "\n" + content)
}
}
fun main(args: Array<String>) {
var str = "I found food in the barn"
search(str) //should print out that foo and bar were a match
}
В качестве начала (это игнорирует переменную 'match' и получаетa-list-of-Keywords-Matched), я попытался использовать следующее выражение if в соответствии с тем, что я нашел в этот вопрос ,
if(Arrays.stream(keywords).parallel().anyMatch(content::contains))
, но он поставил волнистую строку под "content "и дал мне эту ошибку
Ни одна из следующих функций не может быть вызвана с предоставленными аргументами: public operator fun CharSequence.contains (char: Char, ignoreCase: Boolean = ...): Booleanопределенный в kotlin.text открытый оператор fun CharSequence.contains (other: CharSequence, ignoreCase: Boolean = ...): логическое значение, определенное в kotlin.text @InlineOnly открытый встроенный оператор fun CharSequence.contains (regex: Regex): логическое значение, определенное в kotlin.text