在Kotlin中,检查字符串数组是否包含值的惯用方法是什么?就像Ruby的#include?一样。我想:
#include?
array.filter { it == "value" }.any()
有更好的办法吗?
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)]
zf9nrax12#
你可以使用find方法,它返回第一个匹配给定[predicate]的元素,或者如果没有找到这样的元素,则使用null。尝试以下代码在array对象中查找value
find
null
array
value
val findedElement = array?.find { it.id == value.id } if (findedElement != null) { //your code here }
nkhmeac63#
您要查找的等效操作符是contains运算符。
array.contains("value")
Kotlin为这个操作符提供了一个替代的中缀符号:
"value" in array
这是在后台调用的同一个函数,但由于在Java中没有中缀表示法,我们可以说in是最惯用的方法。
in
pbgvytdp4#
您还可以使用any()检查数组是否包含一个具有特定字段的对象
any()
listOfObjects.any{ object -> object.fieldxyz == value_to_compare_here }
3mpgtkmj5#
这里是代码,你可以在ArrayList中找到对象的特定字段。Amar Jain的回答帮助了我:
listOfObjects.any{ it.field == "value"}
r1zhe5dt6#
使用in运算符是一种惯用的方法。
val contains = "a" in arrayOf("a", "b", "c")
vngu2lb87#
您可以使用in运算符,在本例中调用contains:"value" in array
contains
7条答案
按热度按时间t1rydlwq1#
您可以使用它.. contains(““)
输出将是
zf9nrax12#
你可以使用
find
方法,它返回第一个匹配给定[predicate]的元素,或者如果没有找到这样的元素,则使用null
。尝试以下代码在array
对象中查找value
nkhmeac63#
您要查找的等效操作符是contains运算符。
Kotlin为这个操作符提供了一个替代的中缀符号:
这是在后台调用的同一个函数,但由于在Java中没有中缀表示法,我们可以说
in
是最惯用的方法。pbgvytdp4#
您还可以使用
any()
检查数组是否包含一个具有特定字段的对象3mpgtkmj5#
这里是代码,你可以在ArrayList中找到对象的特定字段。Amar Jain的回答帮助了我:
r1zhe5dt6#
使用in运算符是一种惯用的方法。
vngu2lb87#
您可以使用
in
运算符,在本例中调用contains
:"value" in array