2
Waht是將字符串拆分的一種慣用方式,它可能包含數字和字母的任意組合,將數字和字母組合在一起,但保持順序)。如何在斯卡拉分裂數字和字母?
例如:
X45C -> X-45-C
5K -> 5-K
將如何實現一個優雅的方式?
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
是正確的選擇取決於實際輸入,諮詢pattern docs瞭解更多信息。
也許這樣的事情可能會有所幫助:
"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"