首页 > 解决方案 > 使用 Kotlin 查找以数组中的一个字符串结尾的所有句子

问题描述

我正在寻找一种方法来过滤以 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]) }

标签: kotlin

解决方案


在您传递的 lambda 中,filter添加一个循环value参数并检查每个参数的函数,例如

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

推荐阅读