Scala 相当于 angular 的漂亮过滤器
Scala equivalent of angular's pretty filter
在 angularJs 中,我可以使用漂亮的过滤器将 "my_name_is_XXX" 转换为 "My Name Is XXX"。我怎样才能在 Scala 中做到这一点。我想出了一些笨拙的正则表达式,它很接近但开头不是大写。有没有更好的方法?
scala> def underscoreToCamel(name: String) = "_([a-zA-Z\d])".r.replaceAllIn(name, {m => " " + m.group(1).toUpperCase() })
underscoreToCamel: (name: String)String
scala> val p = underscoreToCamel("my_name_is")
p: String = my Name Is
scala> val p = underscoreToCamel("my_name_is_XXX")
p: String = my Name Is XXX
scala> val p = underscoreToCamel("my_name_is_XXX your_name")
p: String = my Name Is XXX your Name
在最后一种情况下,我预计 "My Name Is XXX Your Name"
是这样的吗?
name.split("[ _]").map(_.capitalize).mkString(" ")
在 angularJs 中,我可以使用漂亮的过滤器将 "my_name_is_XXX" 转换为 "My Name Is XXX"。我怎样才能在 Scala 中做到这一点。我想出了一些笨拙的正则表达式,它很接近但开头不是大写。有没有更好的方法?
scala> def underscoreToCamel(name: String) = "_([a-zA-Z\d])".r.replaceAllIn(name, {m => " " + m.group(1).toUpperCase() })
underscoreToCamel: (name: String)String
scala> val p = underscoreToCamel("my_name_is")
p: String = my Name Is
scala> val p = underscoreToCamel("my_name_is_XXX")
p: String = my Name Is XXX
scala> val p = underscoreToCamel("my_name_is_XXX your_name")
p: String = my Name Is XXX your Name
在最后一种情况下,我预计 "My Name Is XXX Your Name"
是这样的吗?
name.split("[ _]").map(_.capitalize).mkString(" ")