使用Scala从字符串中获取Long

时间:2013-09-25 17:54:40

标签: scala

我想知道从字符串中获取Long的最佳方法是什么,其中也可能包含其他字符。

例如,“dd:rrrt:r:6564”将变为6564

2 个答案:

答案 0 :(得分:12)

scala> "dd:rrrt:r:6564".filter(_.isDigit).toLong
res0: Long = 6564

答案 1 :(得分:3)

如果您对格式有所了解,或者特别是如果您对该格式有所了解,那么使用Regex提取数字子字符串非常方便(我正在为您制作一些半通用的“图片”格式这里的例子):

val EmbeddedNumberFmt = """\d{2}:\w{4}:\w:(\d+)""".r

val number =
  "12:xyzz:q:6564" match {
    case EmbeddedNumberFmt(n) => Some(n.toLong)
    case _ => None
  }

您现在有Some(n)(如果输入符合格式)或None(如果输入不符合格式)。