Scala:连接可迭代的字符串


262

如何在Scala中通过另一个字符串“联接”字符串的迭代?

val thestrings = Array("a","b","c")
val joined = ???
println(joined)

我希望此代码输出a,b,c(用“,”连接元素)。


1
@scala_newbie我认为您的问题被否决了,因为某些人认为它缺乏研究工作。
om-nom-nom 2012年

24
谷歌搜索这个问题我的研究工作
Walrus the Cat

Answers:


424

mkString怎么

theStrings.mkString(",")

存在一个变体,您可以在其中指定前缀和后缀。

请参阅此处以了解使用foldLeft的实现,该实现更为冗长,但出于教育的考虑也许值得一看。


请注意,foldLeft实现假定一个非空列表
Frawr

5
谢谢!如果有人想将字符串元素括在引号中,则mkString也会有所帮助:theStrings.mkString(“'”,“','”,“'”)
Niko Gamulin

1
@Frawr该页面链接到一堆示例oldfashionedsoftware.com/2009/07/30/…,其中包括一个对空列表(Nil)案例使用模式匹配的实现。修改它以模仿mkString就像这样: def mkFoldLeftString[A](list:List[String], delim:String = ","): String = list match { case head :: tail => tail.foldLeft(head)(_ + delim + _) case Nil => "" }
达沃斯(Davos)

2
langref.org链接已失效
Floegipoky
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.