Kotlin-检查数组是否包含值的惯用方法

zynd9foi  于 2023-05-07  发布在  Kotlin
关注(0)|答案(7)|浏览(325)

在Kotlin中,检查字符串数组是否包含值的惯用方法是什么?就像Ruby的#include?一样。
我想:

array.filter { it == "value" }.any()

有更好的办法吗?

t1rydlwq

t1rydlwq1#

您可以使用它.. contains(““)

data class Animal (val name:String)

 val animals = listOf(Animal("Lion"), Animal("Elephant"), Animal("Tiger"))

 println(animals.filter { it.name.contains("n") }.toString())

输出将是

[Animal(name=Lion), Animal(name=Elephant)]
zf9nrax1

zf9nrax12#

你可以使用find方法,它返回第一个匹配给定[predicate]的元素,或者如果没有找到这样的元素,则使用null。尝试以下代码在array对象中查找value

val findedElement = array?.find {
            it.id == value.id
 }
 if (findedElement != null) {
 //your code here           
 }
nkhmeac6

nkhmeac63#

您要查找的等效操作符是contains运算符。

array.contains("value")

Kotlin为这个操作符提供了一个替代的中缀符号:

"value" in array

这是在后台调用的同一个函数,但由于在Java中没有中缀表示法,我们可以说in是最惯用的方法。

pbgvytdp

pbgvytdp4#

您还可以使用any()检查数组是否包含一个具有特定字段的对象

listOfObjects.any{ object -> object.fieldxyz == value_to_compare_here }
3mpgtkmj

3mpgtkmj5#

这里是代码,你可以在ArrayList中找到对象的特定字段。Amar Jain的回答帮助了我:

listOfObjects.any{ it.field == "value"}
r1zhe5dt

r1zhe5dt6#

使用in运算符是一种惯用的方法。

val contains = "a" in arrayOf("a", "b", "c")
vngu2lb8

vngu2lb87#

您可以使用in运算符,在本例中调用contains
"value" in array

相关问题