首页 > 解决方案 > 如何在 Scala 中将棋子与字符串分开?

问题描述

我有字符串格式的棋子信息,例如:"Ka5Qb3a8b7",其中"Ka5"代表 a5 中的国王,"Qb3"b3 中的皇后和"a8"a8 中的士兵。所以如果''那么士兵。

我怎样才能将每一块分开,以便稍后将它们放入各自的对象中?我想我可以遍历每个索引并将它们与不同的情况相匹配,然后跳过 1 或 2 个字符,具体取决于是否是士兵。但是,如果存在这种方法,我更喜欢更短、更易读的代码。

我首先考虑将大小分组为 3,但显然对于只取 2 个字母的士兵来说是不可能的。我正在使用斯卡拉。

标签: stringscalachess

解决方案


正则表达式模式可以做到这一点。

"[A-Z]?[a-z]\\d".r.findAllIn("Ka5Qb3a8b7").toList
//res0: List[String] = List(Ka5, Qb3, a8, b7)

推荐阅读