2

文字列を 5 文字のグループに分けたい、.eg

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
4

2 に答える 2

6

効率にはほど遠いですが、tを1行にしたい場合は、次のようなものが機能するはずです

"thisisastring".scan(/.{1,5}/).collect {|x| x.ljust(5,"_")}
于 2012-02-02T21:35:46.293 に答える
4

調整は最後の要素でのみ必要なため、調整を行うために要素を繰り返し処理するよりも、分割する前に調整を行う方が効果的です。

("thisisastring"+"_"*("thisisastring".length % 5)).scan(/.{5}/)
于 2012-02-02T22:14:01.313 に答える