Найти все предложения, которые заканчиваются одной из строк в массиве с Kotlin - PullRequest
0 голосов
/ 05 ноября 2018

Я ищу способ фильтрации строк, заканчивающихся одним значением из массива в Kotlin.

fun findStringsThatEndWith(sentences: List<String>, value: String) = sentences
    .filter { it.endsWith(value) }

Это позволит мне отфильтровать все предложения, заканчивающиеся одним значением.

Но я бы хотел сделать следующее:

fun findStringsThatEndWith(sentences: List<String>, vararg value: String) = sentences
    .filter { it.endsWith(value // This won't work //) }

И когда я сделаю это, мне нужно будет знать, сколько значений будет содержать vararg.

fun findStringsThatEndWith(sentences: List<String>, vararg value: String) = sentences
    .filter { it.endsWith(value[0]) || it.endsWith(value[1]) }

1 Ответ

0 голосов
/ 05 ноября 2018

В лямбда-выражении, которое вы передаете filter, добавьте функцию, которая зацикливается на параметре value и проверяет каждый, например,

fun findStringsThatEndWith(sentences: List<String>, vararg value: String) =
        sentences.filter { sentence -> value.any { sentence.endsWith(it) } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...