Chapter 3explained Ruby’s string literal syntax, as well as the
String operators for concatenation (
+), appends (
*), and indexing
). In this section we expand on that coverage by
demonstrating the named methods of the
String class. The subsections that follow this
API overview cover specific areas in more detail.
We begin with methods that provide named alternatives to some of the operators documented in Chapter 3:
s = "hello" s.concat(" world") # Synonym for <<. Mutating append to s. Returns new s. s.insert(5, " there") # Same as s[5,0] = " there". Alters s. Returns new s. s.slice(0,5) # Same as s[0,5]. Returns a substring. s.slice!(5,6) # Deletion. Same as s[5,6]="". Returns deleted substring. s.eql?("hello world") # True. Same as ==.
There are several methods for querying the length of a string:
s.length # => 11: counts characters in 1.9, bytes in 1.8 s.size # => 11: size is a synonym s.bytesize # => 11: length in bytes; Ruby 1.9 only s.empty? # => false "".empty? # => true
String methods for searching a string and for replacing content include the following. We’ll revisit some of these when we consider regular expressions later in this section:
s = "hello" # Finding the position of a substring or pattern match s.index('l') # => 2: index of first l in string s.index(?l) # => 2: works with character codes as well s.index(/l+/) # => 2: works with regular expressions, too s.index('l',3) # => 3: index of first l in string at or after position 3 s.index('Ruby') ...