On Fri, 14 Mar 2008, David A. Black wrote: > Hi -- > > On Fri, 14 Mar 2008, Dan Diebolt wrote: > >> Don't use a regexp. It isn't clear what you want to happen if there isn't a >> middle character if the string has a odd integer for its length. Try using >> some type of substring approach such as this: >> >> str = "xxx" >> str[0..str.length/2-1] + >> str[str.length/2,1] * 4 + >> str[str.length/2+1..str.length] >> => "xxxxxx" > > A slightly different way to do (I think) the same thing: > > irb(main):036:0> str = "xxx" > => "xxx" > irb(main):037:0> str[str.size/2] = str[str.size/2].chr * 4 > => "xxxx" > irb(main):038:0> str > => "xxxxxx" > > I was hoping for a *= operation but it doesn't quite fit :-) Actually it does work in 1.9: irb(main):004:0> str = "xxx" => "xxx" irb(main):005:0> str[str.size/2] *= 4 => "xxxx" irb(main):006:0> str :-) David -- Upcoming Rails training from David A. Black and Ruby Power and Light: ADVANCING WITH RAILS, April 14-17 2008, New York City CORE RAILS, June 24-27 2008, London (Skills Matter) See http://www.rubypal.com for details. Berlin dates coming soon!