我想将一个列表分成几个子列表,但是我不知道该怎么做。 我的想法之一是按元素索引拆分列表。对于示例“ B”索引为0,“ S”索引为2,因此我想将索引0-1之间的部分放入第一个子列表中,然后将第二个子列表作为索引2-5之间的部分。 我的列表示例:
val listOfObj = listOf("B", "B" , "S", "B", "B", "X", "S", "B", "B", "P")
拆分后的结果:
listOf(listOf("B","B"), listOf("S", "B", "B", "X"), listOf("S", "B", "B", "P") )
我如何获得这样的结果?
答案 0 :(得分:0)
在这里。我是用手机写的,没有检查,但是这个想法很基本。
val result = mutableListOf<List<String>>()
var current = mutableList<String>()
listOfObj.forEach { letter ->
if (letter == "S") {
result.add(current)
current = mutableListOf<String>()
}
current.add(letter)
}
if (current.isNotEmpty()) {
result.add(current)
}
您甚至可以为List<T>
创建扩展功能,该功能获取分隔符元素作为参数并返回列表列表。