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
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}
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.
···
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
>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}
>ruby a1.rb
t
e
s
t
t
e
s
t
2
hth.
kind regards -botp