Strings

Chapter 3explained Ruby’s string literal syntax, as well as the String operators for concatenation (+), appends (<<), repetition (*), 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') ...

Get The Ruby Programming Language now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.