我希望我的字符串以5个字符为一组,例如。

thisisastring => ["thisi", "satri", "ng"]

但我也希望最后一组加上
thisisastring => ["thisi", "satri", "ng___"]

我已经到了断线的地步:
"thisisastring".scan /.{5}/)

["thisi", "satri", "ng"]

但不太确定如何为最后一组填充以使其成为“ng”
尽管开始认为股息(div())、模数(%)和.ljust的组合可以做到这一点。
可能填充字符的数目是:(length % 5) * "_"(如果您可以将其相乘的话)?
也许是一些有用的东西:
ruby-1.9.2-p290 :023 > (len % 5).to_i.times { print '_' }
___ => 3

最佳答案

由于只需要对最后一个要素进行调整,所以在拆分前进行调整比在要素上进行调整更为有效。

("thisisastring"+"_"*("thisisastring".length % 5)).scan(/.{5}/)

10-08 04:31