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"