Waht 是将可能包含数字和字母的任意组合的字符串拆分为数字和字母组但保持顺序的惯用方式)。
前任:
X45C -> X-45-C
5K -> 5-K
如何以一种优雅的方式来实现它?
正则表达式来救援!
val xs = List("X45C", "5K")
val ys = xs map {x => """\d+|\D+""".r.findAllIn(x).toList}
println(ys)
/* List(List(X, 45, C), List(5, K)) */
如果\D
是正确的选择取决于实际输入,请查阅模式文档以获取更多信息。
可能这样的事情可能会有所帮助:
"x12y 1y2 QW23ER"
.replace(/([a-z])([0-9])/gi,"$1-$2")
.replace(/([0-9])([a-z])/gi,"$1-$2");
// OUTPUT: "x-12-y 1-y-2 QW-23-ER"