如何在Scala中从字符串创建Set

时间:2014-02-04 19:21:55

标签: scala set

从像这样的字符串创建Set的最有效方法是什么

val string = "Set(1,3,3,4,5)"

val mySet = string.toSet[Int]
res0: Set[Int] = Set(1,3,4,5)

我想创建这个toSet方法。

1 个答案:

答案 0 :(得分:5)

implicit class StringWithToIntSet(val self: String) extends AnyVal { 
  def toIntSet: Set[Int] = {
    val Re = """Set\((.*)\)""".r
    self match { 
      case Re(inner) => inner.split(",").map(_.toInt).toSet
    }
  }
}

然后:

scala> "Set(1,3,3,4,5)".toIntSet
res0: Set[Int] = Set(1, 3, 4, 5)

注意:

  • 您无法将其称为toSet,因为String已有toSet方法(创建Set[Char]