Scala:イテラブル文字列に参加する


262

Scalaで別の文字列によって反復可能な文字列を「結合」するにはどうすればよいですか?

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

このコードを出力してくださいa,b,c( "、"で要素を結合します)。


1
@scala_newbie私はあなたの質問が反対票を投じたと思います、なぜなら何人かの人々はそれが研究努力の不足を考えているからです。
om-nom-nom

24
この質問をグーグルで検索すること私の研究成果です
Walrus the Cat

回答:


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 => "" }
ダボス

2
langref.orgのリンクは機能していません
Floegipoky
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.