(Scala)通过循环字符串列表来初始化val

时间:2018-06-11 21:53:26

标签: scala loops

我无法循环播放我的字符串列表。我有一个字符串列表,我想迭代扔每个元素我的字符:第一次迭代将是0所以我将每个字符串第一个元素并将它们全部加在一起,然后转1,2,依此类推。基本上输出从顶部到底部垂直。

例如,我有一个像这样的字符串列表:

"ABC
 DEF
 GHI"

所以我的出局将是:

"ADG
 BEH
 CFI"

有人能指出我正确的方向吗?

在C#或C ++中我可以简单地创建两个for循环并获取myList [y] [x] - 如何在scala中执行此操作而不使用muttable变量? 我来自C#和C ++背景 - 我可以这样做蒙住眼睛但scala - 我很沮丧,我找不到任何好的在线教程我觉得它是一个沙漠在那里(或者可能具有讽刺意味的一个盲人在这里:))

- 谢谢你! ^^

2 个答案:

答案 0 :(得分:7)

集合上的转置方法可以实现您想要实现的目标。 列表(“ABC”,“DEF”,“GHI”)。transpose.map(xs => xs.mkString) s:List [String] = List(ADG,BEH,CFI)

答案 1 :(得分:0)

您可以为索引使用范围:

val result = <yourlist>.headOption.map { head =>
    (0 until head.length).map { i =>
        <yourlist>.map(_(i))
    }
}

这会产生Some(Vector(List(A, D, G), List(B, E, H), List(C, F, I)))