2017-02-23 7 views
0

に文字列を作る:のように、私はタプル(複数可)のリストを持っているタプルからの読み取りとScalaの

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

第二の要素は、それがどのように処理すべきか...たった2つの要素(F4、F5)のWrappedArrayを持っていますか? –

+0

@ rogue-one、私の場合の 'WrappedArray'は要素の数が違うので、'(F4 \/F5) 'のようになります。 – 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

関連する問題