gpt4 book ai didi

scala - 如何确定 Scala 字符串是否可解析为 Double?

转载 作者:行者123 更新时间:2023-12-03 04:22:03 25 4
gpt4 key购买 nike

假设我在 scala 中有一个字符串,并且我想尝试解析它的 double 值。

我知道,我可以调用 toDouble ,然后在失败时捕获 java num 格式异常,但是有没有更干净的方法来做到这一点?例如,如果有一个 parseDouble 函数返回 Option[Double] 这将符合条件。

如果它已经存在于标准库中,我不想将其放入我自己的代码中,并且我只是在错误的位置寻找它。

感谢您提供的任何帮助。

最佳答案

对于 Scala 2.13+,请参阅下面 Xavier 的回答。显然现在有一个 toDoubleOption 方法。

对于旧版本:

def parseDouble(s: String) = try { Some(s.toDouble) } catch { case _ => None }
<小时/>

花式版本(编辑:除了娱乐值(value)外,不要这样做;几年前,当我写过这样的怪物时,我还是一个稚气未脱的年轻人):

case class ParseOp[T](op: String => T)
implicit val popDouble = ParseOp[Double](_.toDouble)
implicit val popInt = ParseOp[Int](_.toInt)
// etc.
def parse[T: ParseOp](s: String) = try { Some(implicitly[ParseOp[T]].op(s)) }
catch {case _ => None}

scala> parse[Double]("1.23")
res13: Option[Double] = Some(1.23)

scala> parse[Int]("1.23")
res14: Option[Int] = None

scala> parse[Int]("1")
res15: Option[Int] = Some(1)

关于scala - 如何确定 Scala 字符串是否可解析为 Double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9542126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com