ruby-如何填充“;由5个字符组成的组“;最后一组是海底?
我希望我的字符串以5个字符为一组ruby-如何填充“;由5个字符组成的组“;最后一组是海底?,ruby,regex,string,string-substitution,Ruby,Regex,String,String Substitution,我希望我的字符串以5个字符为一组 thisisastring => ["thisi", "satri", "ng"] 但我也希望最后一组中加入__u's,例如 thisisastring => ["thisi", "satri", "ng___"] 我已经得到了关于字符串拆分的信息: "thisisastring".scan /.{5}/) ["thisi", "satri", "ng"] 但不太确定如何为最后一组填充,使其成为“ng_uuuuuuuu” 尽管开始认为
thisisastring => ["thisi", "satri", "ng"]
但我也希望最后一组中加入__u's,例如
thisisastring => ["thisi", "satri", "ng___"]
我已经得到了关于字符串拆分的信息:
"thisisastring".scan /.{5}/)
["thisi", "satri", "ng"]
但不太确定如何为最后一组填充,使其成为“ng_uuuuuuuu”
尽管开始认为股息(div()
)、模数(%
)和.ljust
的组合可能会起作用
填充字符的数量可能是:(长度%5)*“quot
(如果可以将其相乘的话)
也许是使用了:
ruby-1.9.2-p290 :023 > (len % 5).to_i.times { print '_' }
___ => 3
甚至不接近效率,但如果你不想让它成为一条线,像这样的东西应该可以工作:
"thisisastring".scan(/.{1,5}/).collect {|x| x.ljust(5,"_")}
由于只需要在最后一个元素上进行调整,因此在拆分之前进行调整比在元素上进行调整更有效
("thisisastring"+"_"*("thisisastring".length % 5)).scan(/.{5}/)
不是Ruby专家,但为什么不检查数组中最后一个元素的长度呢。在上面加上5个长度的“u”?我喜欢。当你说“不接近效率”时,它可能比使用activesupport要好,不是吗?我可以进行计时运行,但我希望它在枚举中的每个项目上运行
ljust
,而实际上最后一个项目是唯一长度小于5个字符的项目。