2017-08-18 13 views
1

私はマップを持っていて、それを系統的なフォーマットで印刷しようとしていますが、スタックしています。私は以下のような結果が欲しかった。私はScalaで非常に新しいです。体系的なフォーマットで地図を印刷するにはScala

val mapTest = 
    Map(RedDef -> List(Map(RedTypP -> ^.{14}XY.*$, RedTypC -> XY, ExpNoOfAt -> 19, attributes -> List(Map(AttId -> 1, AttNa -> Pro Ty, AttMaxLen -> 1, DataTy -> Map(DataTyName -> AN)), Map(AttId -> 2, AttNa -> Pro Cod, AttMaxLen -> 6, DataTy -> Map(DataTyName -> AN)), Map(AttId -> 3, AttNa -> REQ CODE, AttMaxLen -> 7, DataTy -> Map(DataTyName -> AN))), RedLen -> 117, RedDeIn -> 2, MinNoOfAt -> 19), Map(RedTypP -> ^.{14}JK.*$, RedTypC -> JK, ExpNoOfAt -> 10, attributes -> List(Map(AttId -> 1, AttNa -> Log Si Ty, AttMaxLen -> 1, DataTy -> Map(DataTyName -> A)), Map(AttId -> 2, AttNa -> Log Si Cod, AttMaxLen -> 6,PassValidation->List(00000000) DataTy -> Map(DataTyName -> AN)), RedDeIn -> 3, MinNoOfAt -> 10), Map(RedTypP -> ^.{14}FK.*$, RedTypC -> FK, ExpNoOfAt -> 33, attributes -> List(Map(AttId -> 1, AttNa -> Pro Ty, AttMaxLen -> 1, DataTy -> Map(DataTyName -> AN)), Map(AttId -> 2, AttNa -> Pro Cod, AttMaxLen -> 6, DataTy -> Map(DataTyName -> AN)), Map(AttId -> 3, AttNa -> REQ CDE, AttMaxLen -> 7, DataTy -> Map(DataTyName -> AN)), Map(AttId -> 4, AttNa -> RED Ty, AttMaxLen -> 2, DataTy -> Map(DataTyName -> AN))), RedLen -> 117, RedDeIn -> 4, MinNoOfAt -> 33))) 

私のような出力たかった:SOにここで良い質問をする程度

RedTypP = ^.{14}XY.*$ 
RedTypC = XY 
ExpNoOfAt = 19 
AttId = 1 
AttNa = Pro Ty 
AttMaxLen =1 
DataTyName = AN 
AttId = 2 
AttNa = Pro Cod 
AttMaxLen = 6 
PassValidation=00000000 
DataName = AN 
RedTypP = "JK.*$" 
RedTypC = JK 
ExpNoOfAt = 10 
AttId = 1 
AttNa = Log Si Ty 
AttMaxLen = 1 
DataTyName = AN 
RedLen = 117 
RedDeIn = 2 
MinNoOfAt =10 

答えて

1

くださいread thisを。

これがあなたの目標にどれくらい近いかを見てください。

def map2str(m: Map[String,_]): String = { 
    m.map{ 
    case (_:String,v:List[Map[String,_]]) => v.map(map2str).mkString 
    case (_:String,v:Map[String,_])  => map2str(v) 
    case (k:String,v:String)    => s"$k = $v\n" 
    case x        => s"unknown: $x\n" 
    }.mkString 
} 
+0

あなたのリプレイのおかげで基本的に私はprintmapメソッドでprintlnステートメントを使用したくありません。 println(printmap(mapTest))のようなprintmapメソッドにアクセスしたいときはいつでも、結果だけを出力します。 – user1363308

+0

@ user1363308;簡単な変更。見てみましょう。 – jwvh

+0

jwvh、私はこのエラーを受けています。java.lang.ClassCastException:java.lang.Stringは、scala.collection.immutable.Mapにキャストできません。 – user1363308

関連する問題