Kotlin如何将列表拆分为子列表

时间:2018-11-09 21:44:26

标签: kotlin split

我想将一个列表分成几个子列表,但是我不知道该怎么做。 我的想法之一是按元素索引拆分列表。对于示例“ 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") )

我如何获得这样的结果?

1 个答案:

答案 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>创建扩展功能,该功能获取分隔符元素作为参数并返回列表列表。