2014-11-05 15 views
8

Angenommen, ich habe eine Liste von Tupelnscala Tupels String

('a', 1), ('b', 2)... 

Wie man über deren Umwandlung in einen String im Format

a 1 
b 2 

ich versuchte, mit collection.map(_.mkString('\t')) Allerdings erhalte ich bekommen würde ein Fehler, da ich im Wesentlichen die Operation auf ein Tupel statt auf eine Liste anwende. flatMap Mit half nicht entweder

Antwort

20

Für Tuple2 können Sie:

val list = List(("1", 4), ("dfg", 67)) 
list.map { case (str, int) => s"$str $int"} 

Für alle Tupel diesen Code versuchen:

val list = List[Product](("dfsgd", 234), ("345345", 345, 456456)) 

list.map { tuple => 
    tuple.productIterator.mkString("\t") 
} 
+0

wird diese Sorgfalt nach jedem ein '\ n 'des Hinzufügens Tupel? –

+4

Nein. Es weist jedes Tupel einer Zeichenfolge zu. Wenn Sie '\ n' nach Zeilen verwenden möchten, verwenden Sie' mkString' in der Ergebnisliste. –

+2

Ich glaube nicht, dass die 'toList' nach dem' productIterator' notwendig ist. –