Scala: Bir dizi dizeye katılın


262

Scala'da başka bir dizeyle yinelenebilir bir dizeyi nasıl "birleştirebilirim"?

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

Bu kod çıktısını istiyorum a,b,c("," ile öğeleri birleştirmek).


1
@scala_newbie Sanırım sorunuz aşağıya indirildi, çünkü bazı insanlar bunun araştırma çabalarından yoksun olduğunu düşünüyor.
om-nom-nom

24
Bu soruyu Googling olduğunu araştırmalarım çaba
mors Kedi

Yanıtlar:


424

MkString hakkında ne dersiniz ?

theStrings.mkString(",")

Bir önek ve sonek de belirtebileceğiniz bir varyant vardır.

Çok daha ayrıntılı, ancak belki de eğitim uğruna bakmaya değer foldLeft kullanan bir uygulama için buraya bakın .


FoldLeft uygulamasının boş olmayan bir liste
aldığını unutmayın

5
Teşekkürler! Herkes dize öğelerini tırnak içine almak isterse, mkString de yararlıdır: theStrings.mkString ("'", "', '", "'")
Niko Gamulin 23:16

1
@Frawr Bu sayfa , boş liste (Nil) vakası için desen eşleşmesi kullanan bir uygulama içeren oldfashionedsoftware.com/2009/07/30/… bir grup örneğe bağlantı vermektedir . MkString'i taklit etmek için şu şekilde olur: def mkFoldLeftString[A](list:List[String], delim:String = ","): String = list match { case head :: tail => tail.foldLeft(head)(_ + delim + _) case Nil => "" }
Davos

2
Langref.org bağlantısı öldü
Floegipoky
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.