2017-02-23 92 views
0

做一个字符串我有元组(S)的列表,如:从一个元组读取和斯卡拉

val rez = List((A, B, C, D, E, WrappedArray(F1, F2, F3)), (A2, B2, C2, D2, E2, WrappedArray(F4, F5))) 

我所要做的是创建一个从列表中的每个元组的字符串,所以即(例如,用于第一元组):

if(C == "Bob") then "A => (F1 \/ F2 \/ F3)" 

在元组中的元素是,当然,不同类型的(在WrappedArray()是相同的类型)。

我的困难部分是如何从WrappedArray()中的元素使(F1 \/ F2 \/ F3)这样的字符串?

感谢您的任何帮助。

+0

在列表中的第二个元素只有两个元素(F4,F5)..的WrappedArray究竟应该如何处理? –

+0

@ rogue-one,它应该变成'(F4 \/F5)',因为在我的情况下'WrappedArray'具有不同数量的元素。 – user4712458

回答

2

如果我理解您的要求正确..下面应该工作..

val rez = List(("A", "B", "Bob", "D", "E", Array("F1", "F2", "F3")), ("A2", "B2", "Bob", "D2", "E2", Array("F4", "F5"))) 

val result = rez map { 
case (a, b, c, d, e, array) if(c == "Bob") => s"$a => ${array.mkString(" \\/ ")}" 
} 
result: List[String] = List(A => F1 \/ F2 \/ F3, A2 => F4 \/ F5) 
+1

“是的,先生!”这真的很有用。我尝试了很多,用不同的方式:(非常感谢你! – user4712458