文字列を文字ごとに繰り返す
Ruby 1.9ではString#each_char
メソッドを使うと、文字列を文字ごとに繰り返すことができる。
"あいうabc".each_char{|c| puts c } =begin あ い う a b c =end
Ruby 1.8では文字列を文字ごとに繰り返すメソッドが用意されていない。以下のように、String#split
とArray#each
を組み合わせるか、正規表現.
が任意の1文字にマッチすることを利用してString#scan
を使うと良い。
"あいうabc".split('').each{|c| puts c } =begin あ い う a b c =end
"あいうabc".scan(/./){|c| puts c } =begin あ い う a b c =end
ただしString#scan
を使う方法では、.
にマッチしない文字を取りこぼしてしまう事に注意。具体的には文字を成さないバイト列が含まれると、そのバイト列は無視される。