Arrays 检查可被2整除的数字,并用Kotlin打印
作为科特林课程的一部分,我正在做一项任务,我真的被困在这件事上了。我觉得这很简单,但我看不见。以下是此任务的操作说明: 您将获得一个整数列表。迭代给定的列表,并在单行中打印可被2整除的元素 样本输入: 样本输出:Arrays 检查可被2整除的数字,并用Kotlin打印,arrays,list,for-loop,kotlin,integer,Arrays,List,For Loop,Kotlin,Integer,作为科特林课程的一部分,我正在做一项任务,我真的被困在这件事上了。我觉得这很简单,但我看不见。以下是此任务的操作说明: 您将获得一个整数列表。迭代给定的列表,并在单行中打印可被2整除的元素 样本输入: 样本输出: 8 2 这是我的代码(我打印了数字列表,以查看提供给我的数字,因为我没有选择它们,它们是课程自动给出的,我没有看到它们): 我想我已经完成了检查数字是否可以被2整除的部分,但是我不完全理解为什么它只打印2,如果它可以被2整除,为什么不先打印8。起初,我使用列表而不是数组来表示可除变量
8 2
这是我的代码(我打印了数字列表,以查看提供给我的数字,因为我没有选择它们,它们是课程自动给出的,我没有看到它们):
我想我已经完成了检查数字是否可以被2整除的部分,但是我不完全理解为什么它只打印2,如果它可以被2整除,为什么不先打印8。起初,我使用列表而不是数组来表示可除变量,所以我认为可能是这样,因为如果我没有错的话,列表是不可变的,但看起来不是这样。如果有人能向我解释我做错了什么,我将不胜感激 在每个可被2整除的项上重写结果持有者(divisible=intArrayOf()
),这就是为什么只有最后一个匹配项存储在可整除的数组中
而不是
divisible = intArrayOf(numbers[i])
你应该写
divisible.add(numbers[i]) // no need to re-initialize
更新:我错过了数组没有添加
操作。如果合适,您可以使用列表而不是数组,以使add
操作可用:
var divisible = mutableListOf<Int>()
var divisible=mutableListOf()
另外,对于Kotlin来说,有一个较短的方法可以做到这一点:
fun解决方案(编号:列表){
val divisible=numbers.filter{it%2==0}
println(“$numbers”)
println(${divisible.joinToString(“”}))
}
在每个可被2整除的项上重写结果持有者(divisible=intArrayOf()
),这就是为什么只有最后一个匹配项存储在可整除的数组中
而不是
divisible = intArrayOf(numbers[i])
你应该写
divisible.add(numbers[i]) // no need to re-initialize
更新:我错过了数组没有添加
操作。如果合适,您可以使用列表而不是数组,以使add
操作可用:
var divisible = mutableListOf<Int>()
var divisible=mutableListOf()
另外,对于Kotlin来说,有一个较短的方法可以做到这一点:
fun解决方案(编号:列表){
val divisible=numbers.filter{it%2==0}
println(“$numbers”)
println(${divisible.joinToString(“”}))
}
您可以将筛选器与谓词一起使用
例如:
val list = listOf(8,2,11,15)
kotlin的解决方案非常简单
val result = list.filter { it % 2 == 0 }
可以将筛选器与谓词一起使用 例如:
val list = listOf(8,2,11,15)
kotlin的解决方案非常简单
val result = list.filter { it % 2 == 0 }
非常感谢。然而,它告诉我add的“未解析引用”。我不知道为什么,我正在谷歌搜索,看看是否能找到什么。你有什么想法吗?@Pauliecode my bad,见最新答案谢谢!!这是完美的。我完全忘记了filter关键字,看来我要重新学习这个理论了!:')非常感谢。然而,它告诉我add的“未解析引用”。我不知道为什么,我正在谷歌搜索,看看是否能找到什么。你有什么想法吗?@Pauliecode my bad,见最新答案谢谢!!这是完美的。我完全忘记了filter关键字,看来我要重新学习这个理论了!:')非常感谢。现在成功了!非常感谢。现在成功了!