Sometimes we need to trim characters from the start or end of strings. With chomp, strip and chop, we can remove leading and trailing chars.
With chomp, we remove trailing newlines only (unless a custom argument is provided). Strip removes leading and trailing whitespace. Chop removes the last char
.
This removes the newline characters from the end of a string
. So it will remove "\n" or "\r\n" if those characters are at the end. A substring is removed if it is present.
# Chomp removes ending whitespace and returns a copy. value = "egypt\r\n" value2 = value.chomp puts value2 # Chomp! modifies the string in-place. value3 = "england\r\n" value3.chomp! puts value3 # An argument specifies apart to be removed. value4 = "european" value4.chomp! "an" puts value4egypt england europe
This method is sometimes called trim()
: it removes all leading and trailing whitespace. Spaces, newlines, and other whitespace like tab characters are eliminated.
string
in-place. The leading space and trailing newline are removed.# Part 1: strip removes leading and trailing whitespace. value1 = " bird\n" value1.strip! puts "[" + value1 + "]" # Part 2: chomp does not remove spaces, only newlines. value2 = " bird\n" value2.chomp! puts "[" + value2 + "]"[bird] [ bird]
Here we use the chop()
method. This method is similar to chomp, but less safe. It removes the final character from the input. This can lead to corrupt data.
string
is always removed with chop—even if it is not whitespace.Chomp()
is safer than chop, as it will not remove an ending char
unless it is a newline character.# Part 1: chop removes the last character. value1 = "cat" value1.chop! puts "[" + value1 + "]" # Part 2: chomp only removes a newline at the end. value2 = "cat" value2.chomp! puts "[" + value2 + "]"[ca] [cat]
When processing text in Ruby programs, we usually need to remove certain leading trailing characters. Strip()
is a versatile method, but chomp()
and chop can also be useful.