首页 > 解决方案 > 在 Scala 中打印时从元组中删除数据类型

问题描述

我目前有两张地图:-

mapBuffer = Map[String, ListBuffer[(Int, String, Float)]
personalMapBuffer = Map[mapBuffer, String]

我想做的事情是创建一个列表,然后允许用户创建一个包含评论的个性化列表,这样他们就有自己的地图列表。

我只是想打印信息,因为上面的一切都很好。

要从 mapBuffer 打印密钥,我使用:-

mapBuffer.foreach(line => println(line._1))

这返回: -

Sample String 1
Sample String 2

要从 personalMapBuffer 打印相同的内容,我使用的是:-

personalMapBuffer.foreach(line => println(line._1.map(_._1)))

但是,这会返回:-

List(Sample String 1)
List(Sample String 2)

我显然希望它只返回“示例字符串”并删除 List() 方面。我假设这与 .map 函数有关,尽管这是我能找到的在元组中访问元组的唯一方法。有没有一种简单的方法来删除数据类型?我希望有一些简单的东西,比如: -

line._1.map(_._1).removeDataType

但显然不存在这样的前置功能。我对 Scala 很陌生,所以这可能非常简单(我希望它是哈哈)或者它可能更复杂一些。任何帮助都会很棒。

谢谢。

标签: scalatuplesprintln

解决方案


如果默认List.toString行为,您会看到什么。您使用 operation 构建自己的字符串mkString

val separator = ","
personalMapBuffer.foreach(line => println(line._1.map(_._1.mkString(separator))))

这将产生所需的结果,Sample String 1或者Sample String 1, Sample String 2是否会有 2 个字符串。

希望这可以帮助!


推荐阅读