如何从三个可能的不同输入中提取整数(秒)?
How to extract integer (seconds), from three possible different inputs?
正如我在标题中所述,如何从包含 int 和 char 的字符串输入中获取整数数据。
函数的可能输入是:
(“1 分钟”...“9 分钟”),
(“11:59” ... “12:00”) 和
(">>"),我可以假设是 0.
我想到了这个解决方案,但 returns 我将确切的字符串作为输入。如何只获取此模式中存在的数字。
def toSeconds(time : String) : String = {
val pattern = """(\d+) min.""".r
val pattern2 = """(\d+):(\d+).""".r
if(pattern.findFirstIn(time) != "None")
{
pattern.findFirstIn(time).toString.concat("h")
}
if (pattern2.findFirstIn(time) != "None")
{
pattern2.findFirstIn(time).toString.concat("x")
}
if (time == ">>") 0.toString
else time
}
我会这样做:
time match {
case pattern(m) => s"${m}h"
case pattern2(h,m) => s"${h}h${m}"
case ">>" => "0"
case _ => time
}
正如我在标题中所述,如何从包含 int 和 char 的字符串输入中获取整数数据。
函数的可能输入是: (“1 分钟”...“9 分钟”), (“11:59” ... “12:00”) 和 (">>"),我可以假设是 0.
我想到了这个解决方案,但 returns 我将确切的字符串作为输入。如何只获取此模式中存在的数字。
def toSeconds(time : String) : String = {
val pattern = """(\d+) min.""".r
val pattern2 = """(\d+):(\d+).""".r
if(pattern.findFirstIn(time) != "None")
{
pattern.findFirstIn(time).toString.concat("h")
}
if (pattern2.findFirstIn(time) != "None")
{
pattern2.findFirstIn(time).toString.concat("x")
}
if (time == ">>") 0.toString
else time
}
我会这样做:
time match {
case pattern(m) => s"${m}h"
case pattern2(h,m) => s"${h}h${m}"
case ">>" => "0"
case _ => time
}