From: George George Date: 2008-12-10T17:54:55+09:00 Subject: Re: chars method Thanks Brian GG Brian Candler wrote: > George George wrote: >> Any ideas why this code returns : >> undefined method `chars' for "mystring":String (NoMethodError) > > Sure - it's because ruby 1.8 has no instance method called "chars" in > the String class. > > Use "ri String" to get a list of methods in String, or look at the API > reference. > > However, there is such a method in ruby 1.9: > > $ irb19 > irb(main):001:0> "abcde".chars > => # > irb(main):002:0> "abcde".chars.to_a > => ["a", "b", "c", "d", "e"] > > In ruby 1.8, you could use each_byte to iterate over the bytes, but this > will give the numeric value for each one. > > irb(main):001:0> require 'enumerator' > => true > irb(main):002:0> "abcde".to_enum(:each_byte).to_a > => [97, 98, 99, 100, 101] > > (Also, note that ruby 1.9 has a different concept of "character" which > understands multi-byte characters and encodings) > > Here's another approach which should work in both 1.8 and 1.9: > > irb(main):003:0> "abcde".split(//) > => ["a", "b", "c", "d", "e"] -- Posted via http://www.ruby-forum.com/.