Scala - 将映射键值对转换为字符串

Muh*_*han 5 scala

我必须使用给定的2个分隔符将Map转换为字符串,并且我想使用自己的分隔符

我已完成以下代码

Map("ss"-> "yy", "aa"-> "bb").map(data => s"${data._1}:${data._2}").mkString("|")
Run Code Online (Sandbox Code Playgroud)

出局是ss:yy | aa:bb

我正在寻找更好的方法.

P. *_*lov 14

我相信这mkString是用分隔符连接字符串的正确方法.您可以将它应用于元组以及均匀性,使用productIterator:

Map("ss"-> "yy", "aa"-> "bb")
  .map(_.productIterator.mkString(":"))
  .mkString("|")
Run Code Online (Sandbox Code Playgroud)

但请注意,productIterator丢失类型信息.在字符串不会造成太大伤害的情况下,但在其他情况下可能很重要.


Shi*_*mar 7

Map("ss" -> "yy", "aa" -> "bb").map{case (k, v) => k + ":" + v}.mkString("|")
Run Code Online (Sandbox Code Playgroud)