Array#uniqで重複を削除した配列に対してArray#eachでループさせたところ、問題は無事解決されました。ただ、実行すると最後にこの配列が表示されるのが気になる。なんでだろう?
def count_letters(str)
ary = str.split(//)
ary.uniq!
ary.each do |letter|
result = str.scan(/(#{letter})/)
print "'", letter, "': "
result.count.times{print "*"}
print "\n"
end
end
p count_letters("Ruby is an object oriented programming language")