1

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

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

4

2 回答 2

12
scala> "dd:rrrt:r:6564".filter(_.isDigit).toLong
res0: Long = 6564
于 2013-09-25T17:59:07.787 回答
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(如果输入不符合格式)。

于 2013-09-25T18:23:03.973 回答