我知道scala有字符串插值,您可以执行以下操作:
s"${firstName} ${lastName}"
关于它的好处是,与string.format相比,搞砸的可能性更小,我可以搞砸像
这样的论点"%s %s".format(lastName, firstName)
有没有办法将模板保存为变量并评估firstName和lastName的多个值?有点像:
val template = "${firstName} ${lastName}"
persons.map{case(firstName, lastName) =>
//substitute template here
}
由于
答案 0 :(得分:1)
如果你想重复使用模式,那么简单的方法就是围绕它创建一个函数
def format(firstName: String, lastName:String) = s"${firstName} ${lastName}"
persons.map{case(firstName, lastName) =>
format(firstName,lastName)
}
漫长的方法是将模式解析为StringContext
,如this question
答案 1 :(得分:0)
如何使用 Regex 提取数据,例如:
val R = "(\\w+) (\\w+)".r
val (firstName, lastName) = "hello world" match {
case R(a, b) => (a, b)
}
println(firstName)
> hello
println(lastName)
> world
了解详情:
http://www.scala-lang.org/api/2.12.1/scala/util/matching/Regex.html