【发布时间】:2016-04-29 15:49:09
【问题描述】:
我有一个驼峰式字符串,例如:JustAString。
我想按照以下规则形成 长度为 4 的字符串:
- 抓住所有大写字母;
- 如果超过4个大写字母,只保留前4个;
- 如果少于 4 个大写字母,则大写并在 最后一个大写字母之后添加字母,直到长度变为 4。
以下是可能发生的 3 种情况:
-
ThisIsMyString将产生TIMS(大写); -
ThisIsOneVeryLongString将产生TIOV(前 4 个大写字母); -
MyString将产生MSTR(大写字母 +tr大写字母)。
我设法用这个 sn-p 解决了前两种情况:
str.scan(/[A-Z]/).first(4).join
但是,我不太确定如何最好地修改上述 sn-p 以处理最后一种情况(甚至尝试不同的方法)。
P.S.:保证字符串至少有一个大写字母和 4 个字符。但是,如果理论上缺少大写字母,则应考虑前 4 个字符。如果没有 4 个字符,可能会用第一个字母字符 (abcd) 填充缺失的字符。但是,如前所述,这两种极端情况通常不会发生。
【问题讨论】: