# Re: iterate chars in a string

**URL:** <https://www.ruby-forum.com/t/re-iterate-chars-in-a-string/73269>\
**Category:** Ruby\
**Created:** [December 20, 2005, 11:29am UTC](https://www.ruby-forum.com/t/re-iterate-chars-in-a-string/73269 "2005-12-20T11:29:52Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![SSSiso-8859-1SQSPeS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/49beb7/32.png) [@SSSiso-8859-1SQSPeS](https://www.ruby-forum.com/u/SSSiso-8859-1SQSPeS)\
**Post date:** [December 20, 2005, 11:29am UTC](https://www.ruby-forum.com/t/re-iterate-chars-in-a-string/73269/1 "2005-12-20T11:29:52Z")

</div>

shinya [[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)]:

#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

---

<div class="post-metadata">

**Author:** ![SSSiso-8859-1SQSPeS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/49beb7/32.png) [@SSSiso-8859-1SQSPeS](https://www.ruby-forum.com/u/SSSiso-8859-1SQSPeS)\
**Post date:** [December 20, 2005, 11:44am UTC](https://www.ruby-forum.com/t/re-iterate-chars-in-a-string/73269/2 "2005-12-20T11:44:56Z")

</div>

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

> me too, i use each\_byte  
> maybe you want something like #each\_char  
> end  
> e  
> s  
> t  
> 2
> 
> hth.  
> kind regards -botp

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