繁体   English   中英

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

[英](Scala) initialize val by looping a list of strings

我在循环时遇到麻烦,无法放入我的字符串列表。 我有一个字符串列表,我想迭代将每个元素扔给char:第一次迭代将为0,所以我将每个字符串都作为第一个元素并将它们加在一起,然后变为1、2,依此类推。 基本上,输出从上到下都是垂直的。

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

"ABC
 DEF
 GHI"

所以我的输出将是:

"ADG
 BEH
 CFI"

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

在C#或C ++中,我可以简单地使两个for循环并使用myList [y] [x]-如何在scala中做到这一点而不使用可变变量? 我来自C#和C ++背景-我可以蒙住眼睛,但可以做scala-非常沮丧,我在网上找不到任何不错的教程,感觉就像是一片荒芜(或者讽刺的是,这里的一个盲人:)

-谢谢! ^^

集合上的transpose方法可以实现您想要实现的目标。

List("ABC", "DEF", "GHI").transpose.map(xs => xs.mkString)
s: List[String] = List(ADG, BEH, CFI)

您可以使用Range作为索引:

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)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM