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 ",").


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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.