将Option [Int]转换为字符串,然后再转换回Option [Int]

时间:2020-05-28 12:33:43

标签: scala

我有一个将Option [Int]转换为字符串的API。我想将其转换回Option [Int]。在Scala中执行此操作的最佳方法是什么?

val x = Some(1)
val y = x.toString
val z: Option[Int] = ???  // Expected value is Some(1) from y

1 个答案:

答案 0 :(得分:2)

在Scala 2.13中

y match { 
  case s"Some($x)" => x.toIntOption
  case _ => None
}

在Scala 2.12中

val someInt = """Some\((\d+)\)""".r
y match { 
  case someInt(x) => Try(x.toInt).toOption
  case _ => None
}