Waht将是一种惯用的方法,可以将包含数字和字母组合的字符串拆分为数字和字母组,但保留顺序。)
例如:
X45C -> X-45-C
5K -> 5-K
如何以优雅的方式实现它?
答案 0 :(得分:4)
正规救援!
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
是正确的选择取决于实际输入,请参阅pattern docs以获取更多信息。
答案 1 :(得分:0)
这样的事情可能会有所帮助:
"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"