Changes

Ruby String Replacement, Substitution and Insertion

2,445 bytes added, 16:16, 28 November 2007
New page: In this chapter we will look at some string manipulation techniques available in Ruby. Such techniques include string substitution, multiplication and insertion. We will also take a look a...
In this chapter we will look at some string manipulation techniques available in Ruby. Such techniques include string substitution, multiplication and insertion. We will also take a look at the Ruby ''chomp'' and ''chop'' methods.

== Changing a Section of a String ==

Ruby allows part of a string to be modified thorough the use of the []= method. To use this method, simply pass through the string of characters to be replaced to the method and assign the new string. As is often the case, this is best explained through the use of an example:

<pre>
myString = "Welcome to JavaScript!"

myString["JavaScript"]= "Ruby"

puts myString
=> "Welcome to Ruby!"
</pre>

As you can see, we replaced the word "JavaScript" with "Ruby".

The []= method can also be passed an index representing the index at with the replacement is to take place. In this instance the single character at the specified location is replaced by the designated string:

<pre>
myString = "Welcome to JavaScript!"
myString[10]= "Ruby"

puts myString
=> "Welcome toRubyJavaScript!"
</pre>

Perhaps a more useful trick is to specify an index range to be replaced. For example we can replace the characters from index 8 through to index 20 inclusive:

<pre>
myString = "Welcome to JavaScript!"
=> "Welcome to JavaScript!"

myString[8..20]= "Ruby"
=> "Ruby"

puts myString
=> "Welcome Ruby!"
</pre>

== Ruby String Substitution ==

The ''gsub'' and ''gsub!'' methods provide another quick and easy way of replacing a substring with another string. These methods take two arguments, the search string and the replacement string. The ''gsub'' method returns a modified string, leaving the original string unchanged, whereas the ''gsub!'' method directly modify the string object on which the method was called:

<pre>
myString = "Welcome to PHP Essentials!"
=> "Welcome to PHP Essentials!"

myString.gsub("PHP", "Ruby")
=> "Welcome to Ruby Essentials!"
</pre>

An entire string, as opposed to a substring, may be replaced using the ''replace'' method:

<pre>
myString = "Welcome to PHP!"
=> "Welcome to PHP!"

myString.replace "Goodbye to PHP!"
=> "Goodbye to PHP!"
</pre>

== Repeating Ruby Strings ==

A string may be multiplied using the * method (not something I have ever needed to do myself, but the capability is there is you need it):

<pre>
myString = "Is that an echo? "
=> "Is that an echo? "

myString * 3
=> "Is that an echo? Is that an echo? Is that an echo? "
</pre>