それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ruby 文字列(配列)を指定数で分割する

文字列を指定数で分割するには?

  • 文字列を配列と考える。
  • 文字列を正規表現でマッチする。

の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 

とか時刻表記にも応用できるね!

ある目的のために、いろいろな回答が考えられるからプログラムって面白いんだと思う。

広告を非表示にする