Ruby Tips!

RubyのTipsを紹介します

文字列を文字ごとに繰り返す

Ruby 1.9ではString#each_charメソッドを使うと、文字列を文字ごとに繰り返すことができる。

"あいうabc".each_char{|c|
  puts c
}
=begin



a
b
c
=end

Ruby 1.8では文字列を文字ごとに繰り返すメソッドが用意されていない。以下のように、String#splitArray#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を使う方法では、.にマッチしない文字を取りこぼしてしまう事に注意。具体的には文字を成さないバイト列が含まれると、そのバイト列は無視される。