我有一些类似的字符串
val value1 = """int | 10"""
val value2 = """double | 0.1"""
val value3 = """duration | 60s"""
这意味着"int | 10"
本身是一个字符串。
我想从这些字符串中获取类似10 , 0.1 , 60s
的值。我是scala的新手,所以请让我知道如何实现这一价值。
。
答案 0 :(得分:0)
他们有多种方法可以做到这一点。我正在分享一种这样的方法。
val value1 = """int | 10"""
val value2 = """double | 0.1"""
val value3 = """duration | 60s"""
println(value1.split("\\|")(1).trim)
println(value2.split("\\|")(1).trim)
println(value3.split("\\|")(1).trim)
结果
10
0.1
60s
答案 1 :(得分:0)
使用正则表达式匹配可能是最灵活的方法,但不是最有效的方法:
def extract(valueString: String): Option[String] = {
val ValueMatch = """.*\|\s*([^\s]+)\s*""".r
valueString match {
case ValueMatch(v) => Some(v)
case _ => None
}
}
您还可以更新正则表达式以提取类型和值,然后检查值是否符合正确的类型,并返回正确类型的值。