From: Tim Hunter Date: 2006-02-15T09:03:27+09:00 Subject: Re: simple programming q grrr wrote: > I am a ruby newbie. I want to make a simple script that replaces certain > characters in a block of text with specific other characters. > > I am wondering what kind of loop or algo is thought to be most effective > for this kind of work.. > Maybe go through the block of text with a hashing table and replace > each 'hit'? Would this be reasonable approach? > > #example pseudocode idea > blokoftxt = 'Theres some text in block.' > replacekey = { 'T' = 'W', 'a' = 'o', 'o' = 'a' } > > blokoftxt.each ( if equal to a replacekey, replace with key value ) > > > This would mean going through each character in the textblock. I guess one > could conversely go through the replacekey array and match to the > textblock?? Which way to go? > > J Von Rubiginner > > text = <<-ENDTEXT The Owl and the Pussy-cat went to sea In a beautiful pea green boat, They took some honey, and plenty of money, Wrapped up in a five pound note. The Owl looked up to the stars above, And sang to a small guitar, 'O lovely Pussy! O Pussy my love, What a beautiful Pussy you are, You are, You are! What a beautiful Pussy you are!' ENDTEXT replace_key = { 'O' => 'd', 'P' => 'w', 'b' => 'x'} new_text = text.gsub(/[#{replace_key.keys.join}]/) {|match| replace_key[match] } puts new_text The result is: The dwl and the wussy-cat went to sea In a xeautiful pea green xoat, They took some honey, and plenty of money, Wrapped up in a five pound note. The dwl looked up to the stars axove, And sang to a small guitar, 'd lovely wussy! d wussy my love, What a xeautiful wussy you are, You are, You are! What a xeautiful wussy you are!'