2014-11-05 17 views
8

Załóżmy, że mam listę krotekscala krotki String

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

Jak dostać o przekształcenie go na ciąg w formacie

a 1 
b 2 

Próbowałem za pomocą collection.map(_.mkString('\t')) Jednak Dostaję błąd, ponieważ zasadniczo stosuję operację na krotce zamiast na liście. Korzystanie flatMap nie pomogło

Odpowiedz

20

Dla Tuple2 można użyć:

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

przypadku jakichkolwiek krotki wypróbować ten kod:

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

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

to będzie dbać o dodanie '\ n' po każdym krotka? –

+4

Nie. Mapuje każdą tupię na ciąg. Jeśli chcesz "\ n" po liniach, użyj 'mkString' na liście wyników. –

+2

Nie sądzę, że 'toList' po" productIteratorze "jest konieczne. –