首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kotlin数组切片索引

Kotlin数组切片索引
EN

Stack Overflow用户
提问于 2020-04-03 22:49:40
回答 3查看 2.2K关注 0票数 2

假设我想遍历Kotlin IntArray中除第一个元素之外的所有元素。目前,我是这样做的:

代码语言:javascript
运行
复制
fun minimalExample(nums: IntArray): Unit {
    for(num in nums.sliceArray(IntRange(1,nums.size-1))) println(num)
}

有没有像Python语言那样的简单语法(我不想指定nums数组的结束索引):

代码语言:javascript
运行
复制
for (num in nums[1:])
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-03 23:00:35

我认为你可以使用Kotlin的drop,它将删除数组的第一个n元素。

代码语言:javascript
运行
复制
fun minimalExampleWithDrop(nums: IntArray): Unit {
    for(num in nums.drop(1)) println(num)
}

minimalExampleWithDrop(intArrayOf(1,2,3,4,5,6))
// 2
// 3
// 4
// 5
// 6

Repl.it:https://repl.it/repls/SvelteShadyLivecd

票数 3
EN

Stack Overflow用户

发布于 2020-04-03 23:49:05

1作为起始索引的基本for loop

代码语言:javascript
运行
复制
    val myList = intArrayOf(1,2,3,4,5,6)

    for(i in 1 until myList.size){
        Log.d(TAG,"${myList[i]}")
    }

或者,因为它是一个IntArray,所以您可以将其用作Iterator并跳过像显示的here这样的元素

代码语言:javascript
运行
复制
    val iterator = myList.iterator()
    // skip an element
    if (iterator.hasNext()) {
        iterator.next()
    }
    iterator.forEach {
        Log.d(TAG,"it -> $it")
    }
票数 3
EN

Stack Overflow用户

发布于 2021-11-01 08:07:32

您也可以使用slice方法,该方法存在于列表和数组中。下面是这两种情况的示例:

代码语言:javascript
运行
复制
val a = listOf(1, 2, 3, 4)
println(a.slice(1..a.size - 1))

val b = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9)
println(b.slice(4..5))

这将打印出来:

代码语言:javascript
运行
复制
[2, 3, 4]
[5, 6]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61014523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档