我必须使用给定的2个分隔符将Map转换为字符串,并且我想使用自己的分隔符
我已完成以下代码
Map("ss"-> "yy", "aa"-> "bb").map(data => s"${data._1}:${data._2}").mkString("|")
out out是ss:yy | aa:bb
我正在寻找更好的方法。
答案 0 :(得分:10)
我相信mkString
是使用分隔符连接字符串的正确方法。您可以使用productIterator
:
Map("ss"-> "yy", "aa"-> "bb")
.map(_.productIterator.mkString(":"))
.mkString("|")
但请注意,productIterator
会丢失类型信息。如果字符串不会造成太大伤害,但在其他情况下则很重要。
答案 1 :(得分:3)
Map("ss" -> "yy", "aa" -> "bb").map{case (k, v) => k + ":" + v}.mkString("|")