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.