From: Rob Biedenharn Date: 2010-05-09T00:59:12+09:00 Subject: Re: Strings iteration On May 8, 2010, at 10:30 AM, Robert Klemme wrote: > On 08.05.2010 12:12, Viorel wrote: >> I have some names like aaxxbbyy where xx is '01'..'10' and yy is also >> '01'..'10'. I think there is a simple, rubyst way of iterating >> through >> them, and I ask for your help in finding it. Thank you in advance! > > I am not sure I understand exactly what you are trying to do. Does > this help? > > irb(main):005:0> r = '01' .. '10' > => "01".."10" > irb(main):006:0> r.zip(r){|xx,yy| puts "aa#{xx}bb#{yy}"} > aa01bb01 > aa02bb02 > aa03bb03 > aa04bb04 > aa05bb05 > aa06bb06 > aa07bb07 > aa08bb08 > aa09bb09 > aa10bb10 > => nil > irb(main):007:0> > > Kind regards > > robert > > -- > remember.guy do |as, often| as.you_can - without end > http://blog.rubybestpractices.com/ I'm guessing the OP expects a series of 100 names: aa01bb01 aa01bb02 ... aa01bb10 aa02bb01 ... aa10bb09 aa10bb10 So iterate both parts separately: xx_range = '01'..'10' yy_range = '01'..'10' xx_range.each do |xx| yy_range.each do |yy puts "aa#{xx}bb#{yy}" end end Or wrap that up in a method and replace puts with yield def names xx_range = '01'..'10' yy_range = '01'..'10' xx_range.each do |xx| yy_range.each do |yy yield "aa#{xx}bb#{yy}" end end end names.each {|name| puts name } Reasonably simple and certainly rubyist ;-) -Rob Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com http://gaslightsoftware.com rab@GaslightSoftware.com