Scala:将一个字符串可迭代对象连接起来

317

在Scala中,如何通过另一个字符串将字符串可迭代对象“连接”起来?

val thestrings = Array("a","b","c")
val joined = ???
println(joined)
我希望这段代码输出 a,b,c(用逗号连接元素)。

1
@scala_newbie 我认为你的问题被踩是因为有些人认为它缺乏研究努力。 - om-nom-nom
38
搜索这个问题就是我的研究努力。 - Walrus the Cat
1
我在谷歌搜索时看到了这个问题。 - RixTheTyrunt
1个回答

506

那么 mkString 呢?

theStrings.mkString(",")

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

请参见此处使用foldLeft实现的内容,该实现更冗长,但也许值得看看以增进知识。


请注意,foldLeft实现假定列表非空。 - Ferdy
8
谢谢!如果有人想要在字符串元素中加上引号,mkString也是很有用的:theStrings.mkString("'", "','", "'") - Niko Gamulin
1
@Frawr 那个页面链接了一堆例子 https://oldfashionedsoftware.com/2009/07/30/lots-and-lots-of-foldleft-examples/,其中包括一个使用模式匹配处理空列表(Nil)情况的实现。将其修改为类似于mkString的实现,可以这样做:`def mkFoldLeftString[A](list:List[String], delim:String = ","): String = list match { case head :: tail => tail.foldLeft(head)(_ + delim + _) case Nil => "" }` - Davos
3
langref.org的链接已失效。 - Floegipoky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接