Scala: bergabung dengan iterable of string

262

Bagaimana cara "bergabung" dengan sebuah string dengan string lain di Scala?

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

Saya ingin kode ini dihasilkan a,b,c(gabungkan elemen dengan ",").

scala_newbie
sumber
1
@scala_newbie Saya pikir pertanyaan Anda telah dibatalkan, karena beberapa orang berpikir itu kurang dari upaya penelitian.
om-nom-nom
24
googling pertanyaan ini adalah upaya penelitian saya
Walrus the Cat

Jawaban:

424

Bagaimana dengan mkString ?

theStrings.mkString(",")

Ada varian di mana Anda dapat menentukan awalan dan sufiks juga.

Lihat di sini untuk implementasi menggunakan foldLeft , yang jauh lebih bertele-tele, tapi mungkin layak untuk dilihat demi pendidikan.

Brian Agnew
sumber
Perhatikan bahwa implementasi foldLeft mengasumsikan daftar tidak kosong
Frawr
5
Terima kasih! Jika ada yang ingin menyertakan elemen string dalam tanda kutip, mkString juga membantu: theStrings.mkString ("'", "', '", "'")
Niko Gamulin
1
@Frawr Halaman itu menautkan ke sekumpulan contoh oldfashionedsoftware.com/2009/07/30/... yang mencakup implementasi yang menggunakan pencocokan pola untuk kasus daftar kosong (Nihil). Mengubahnya menjadi mkic mkString akan seperti ini: def mkFoldLeftString[A](list:List[String], delim:String = ","): String = list match { case head :: tail => tail.foldLeft(head)(_ + delim + _) case Nil => "" }
Davos
2
Tautan langref.org sudah mati
Floegipoky