ChatGPT解决这个技术问题 Extra ChatGPT

Scala:加入一个可迭代的字符串

如何通过Scala中的另一个字符串“加入”一个可迭代的字符串?

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

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

@scala_newbie 我认为您的问题被否决了,因为有些人认为它缺乏研究工作。
谷歌搜索这个问题是我的研究工作
我在谷歌搜索时看到了这个问题🥴

M
Magnus Reftel

mkString 怎么样?

theStrings.mkString(",")

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

请参阅 here 以了解使用 foldLeft 的实现,它更加冗长,但出于教育的目的可能值得一看。


请注意 foldLeft 实现假定一个非空列表
谢谢!如果有人想用引号将字符串元素括起来,mkString 也很有帮助:theStrings.mkString("'", "','", "'")
@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 => "" }
langref.org 链接已失效