在 Scala Set 中附加 String 元素的优雅方法是什么?
What's an elegant way to append String elements in a Scala Set?
我有一个不可变的 Scala Set[String]
,其中包含一些字符串,比如 {"a", "b", "c"}
。我基本上想将它们附加到看起来像 "\"a\",\"b\",\"c\""
的 String
中。我知道我可以制作一个 var resultStr
并使用 for 循环来获得结果。但是由于 Scala 鼓励在 val 上使用不可变的 val 并且在集合上定义了如此多的操作,我想知道是否有更优雅的实现结果的方法。
谢谢。
如果你想从 scala 集合中创建一个字符串,那么你可以简单地使用 mkString(sep)
。例如,
Set("a", "b", "c").mkString(",")
您可以使用 map
将它们用引号括起来,然后使用 mkString
将它们连接起来并以逗号作为分隔符。
s.map(x => s""""$x"""").mkString(",")
或
s.map(x => "\"" + x + "\"").mkString(",")
(高音引号是 Scala 避免从内部转义任何内容的方法,美元是字符串插值。)
我有一个不可变的 Scala Set[String]
,其中包含一些字符串,比如 {"a", "b", "c"}
。我基本上想将它们附加到看起来像 "\"a\",\"b\",\"c\""
的 String
中。我知道我可以制作一个 var resultStr
并使用 for 循环来获得结果。但是由于 Scala 鼓励在 val 上使用不可变的 val 并且在集合上定义了如此多的操作,我想知道是否有更优雅的实现结果的方法。
谢谢。
如果你想从 scala 集合中创建一个字符串,那么你可以简单地使用 mkString(sep)
。例如,
Set("a", "b", "c").mkString(",")
您可以使用 map
将它们用引号括起来,然后使用 mkString
将它们连接起来并以逗号作为分隔符。
s.map(x => s""""$x"""").mkString(",")
或
s.map(x => "\"" + x + "\"").mkString(",")
(高音引号是 Scala 避免从内部转义任何内容的方法,美元是字符串插值。)