On Dec 20, 2005, at 5:29 AM, Pe?a, Botp wrote:

> shinya [mailto:piccionevolante / libero.it]:
>
> #I'm a ruby newbie, and I'm searching for a way to iterate
> #every char in
> #a string, but I cannot find any easy way. My problem is to
> #look at every
> #char in a string and match it with some known letter.
> #I use the String#each_byte iterator for now, but it still be a poor
> #solution :/
>
> me too, i use each_byte
>
> irb(main):098:0> "test".each_byte{|b| puts(b.to_s+" -> "+b.chr) }
> 116 -> t
> 101 -> e
> 115 -> s
> 116 -> t
> => "test"
>
> i like each_byte when i access like C or raw..
>
> maybe you want something like #each_char
>
> prompt>cat a1.rb
> x="test\ntest2"
>
> class String
>     def each_char
>         each_byte do |b|
>             yield b.chr
>         end
>     end
> end
>
> x.each_char {|c| puts c}
>
> prompt>ruby a1.rb
> t
> e
> s
> t
>
> t
> e
> s
> t
> 2
>
> hth.
> kind regards -botp
>

Careful, a character isn't necessarily a byte in length. You gotta be  
aware of $KCODE.