如何为Kotlin的filter方法编写搜索谓词实现搜索功能?
Kotlin搜索栏过滤谓词实现
要实现你需要的搜索匹配,直接在filter的lambda里用contains方法检查列表元素是否包含搜索关键词就行:
val searchOne = "Chocolate" val result = listOf("Caramel", "Chocolate", "White Chocolate").filter { it.contains(searchOne) } // 结果为 ["Chocolate", "White Chocolate"]
如果要让搜索不区分大小写(更贴合实际搜索栏的使用场景),给contains加上ignoreCase = true参数即可:
val searchOne = "chocolate" // 小写输入 val result = listOf("Caramel", "Chocolate", "White Chocolate").filter { it.contains(searchOne, ignoreCase = true) } // 依然能得到正确匹配结果
简单说明:
it是Kotlin lambda默认的单个参数名,代表列表中的每一个元素contains方法会判断当前元素是否包含指定搜索字符串,返回布尔值,filter会保留返回true的元素
内容的提问来源于stack exchange,提问作者Darwin
相关产品推荐
相关产品推荐

