如何在Android Kotlin中的For循环中获取List Item的索引?

时间:2018-04-02 09:07:45

标签: android for-loop indexing kotlin

fun forLoopListItems() {
        val items = listOf("apple", "banana", "kiwifruit")
        for (i in items) {
            if (i.equals("banana")) {
              println("position is ${i.indices}")
            }
        }
    }

这是与For Loop一起使用的My Kotlin代码。 我试图打印索引对应于" banana" 但结果是" System.out:位置是0..5" 怎么变成0..5?

3 个答案:

答案 0 :(得分:2)

indices方法为您提供了一个范围,在这种情况下为0..5,因为它在String: banana上调用,长度为6。

您可以使用索引进行迭代,如下所示:

items.forEachIndexed { i, element ->
    if (element == "banana") {
        println("position is $i")
    }
}

post中列出了使用索引进行迭代的其他方法。

我不确定你是否真的想要明确迭代。也许您可以使用内置函数来查找元素的索引:

println(items.indexOf("banana"))

答案 1 :(得分:0)

indexOf

  

返回元素的第一个索引,如果集合没有,则返回-1   包含元素。

lastIndexOf

  

返回元素的最后一个索引,如果集合不包含元素,则返回-1。

b = 2

答案 2 :(得分:0)

您可以使用Kotlin的forEachIndexed方法对Index进行迭代

迭代索引

itemList.forEachIndexed{index, item -> 
println("index = $index, item = $item ")
}

检查项目是否为香蕉并打印索引

itemList.forEachIndexed{ index, item -> {
         if (item.equals("banana")) {println("position is ${index}")}
              }