我想知道从字符串中获取Long的最佳方法是什么,其中也可能包含其他字符。
例如,“dd:rrrt:r:6564”将变为6564
答案 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
(如果输入不符合格式)。