文字列を指定数で分割するには?
- 文字列を配列と考える。
- 文字列を正規表現でマッチする。
の2パターンがアプローチできる。
文字列を配列と考える場合
"914119904bf39f27a487d9240d3aab9b68732fc7".chars.each_slice(2).map(&:join).join(":") #=>"91:41:19:90:4b:f3:9f:27:a4:87:d9:24:0d:3a:ab:9b:68:73:2f:c7"
文字列を正規表現でマッチする。
"914119904bf39f27a487d9240d3aab9b68732fc7".scan(/.{1,2}/).join(":") #=>"91:41:19:90:4b:f3:9f:27:a4:87:d9:24:0d:3a:ab:9b:68:73:2f:c7"
オススメは、正規表現
正規表現でscanを覚えたほうがいいね。
言語に非依存で正規表現に依存するので、ruby に限らない知識として有用だと思う。
#each_cons だの指定個数に区切るだの、配列をRangeで区切るとか色々、すごく解答例があると思うんだけど、正規表現が汎用性があると思うんだ。
150010 => 15:00:11
とか時刻表記にも応用できるね!
ある目的のために、いろいろな回答が考えられるからプログラムって面白いんだと思う。