【问题标题】:What's an elegant way to append String elements in a Scala Set?在 Scala Set 中附加 String 元素的优雅方法是什么?
【发布时间】:2015-07-05 23:02:22
【问题描述】:

我有一个不可变的 Scala Set[String],其中包含一些字符串,比如 {"a", "b", "c"}。我想基本上将它们附加到看起来像"\"a\",\"b\",\"c\""String 中。我知道我可以创建一个var resultStr 并使用一个 for 循环来获得结果。但是由于 Scala 鼓励在 val 之上使用不可变的 val 并且还在集合上定义了如此多的操作,所以我想知道是否有更优雅的方式来实现结果。

谢谢。

【问题讨论】:

    标签: scala set string-concatenation


    【解决方案1】:

    您可以使用map 将它们括在引号中,然后使用mkString 将它们连接起来,并以逗号作为分隔符。

    s.map(x => s""""$x"""").mkString(",")
    

    s.map(x => "\"" + x + "\"").mkString(",")
    

    (高音引号是 Scala 的一种方式,以避免必须从内部转义任何内容,而美元是字符串插值。)

    【讨论】:

    • 谢谢。我注意到还有另一种重载形式的 mkString(start, sep, end) 所以我最终使用了 mkString("\"", "\",\"", "\" ")
    【解决方案2】:

    如果你想从 Scala 集合中创建一个字符串,那么你可以简单地使用mkString(sep)。例如,

    Set("a", "b", "c").mkString(",")
    

    【讨论】:

      猜你喜欢
      • 2011-11-21
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 2022-08-10
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      • 2013-03-04
      相关资源
      最近更新 更多