📖 Scenario: You are creating a simple greeting message by joining different parts of text.
🎯 Goal: Build a greeting message by concatenating strings using the + operator and the operator.
📋 What You'll Learn
Create a string variable with a greeting
Create a string variable with a name
Concatenate the greeting and name using +
Add an exclamation mark using <<
Print the final greeting message
💡 Why This Matters
🌍 Real World
Building messages dynamically is common in apps like chat programs, notifications, and user interfaces.
💼 Career
Understanding string manipulation is essential for software development, especially when preparing text output or user messages.
Progress0 / 4 steps
1
Create greeting and name strings
Create a string variable called greeting with the value "Hello" and another string variable called name with the value "Alice".
Ruby
Hint
Use = to assign strings to variables.
2
Concatenate greeting and name with +
Create a new string variable called message by concatenating greeting, a space " ", and name using the + operator.
Ruby
Hint
Use + to join strings and include a space between words.
3
Add exclamation mark using <<
Use the << operator to add an exclamation mark "!" to the end of the message string.
Ruby
Hint
The << operator adds text to the existing string.
4
Print the final message
Print the message variable to display the full greeting.
Ruby
Hint
Use puts to print the string to the screen.
Practice
(1/5)
1. What is the main difference between + and << when used with strings in Ruby?
easy
A. + creates a new string, << modifies the original string.
B. + modifies the original string, << creates a new string.
C. Both + and << create new strings without modifying the original.
D. Both + and << modify the original string in place.
Solution
Step 1: Understand + behavior
The + operator joins two strings but returns a new string without changing the original.
Step 2: Understand << behavior
The << operator appends text directly to the original string, modifying it in place.
Final Answer:
+ creates a new string, << modifies the original string. -> Option A
Quick Check:
+ new string, << modifies original [OK]
Hint: Remember: + new string, << changes original [OK]
Common Mistakes:
Thinking + changes the original string
Confusing << with creating a new string
Assuming both operators behave the same
2. Which of the following is the correct syntax to append " world" to the string variable greeting using << in Ruby?
easy
A. greeting.add(" world")
B. greeting + " world"
C. greeting.append(" world")
D. greeting << " world"
Solution
Step 1: Identify the correct operator for appending
In Ruby, << is used to append text to an existing string variable.
Step 2: Check syntax correctness
greeting << " world" correctly appends " world" to greeting. Other options are either invalid methods or use + which does not modify in place.
Final Answer:
greeting << " world" -> Option D
Quick Check:
Use << to append text in place [OK]
Hint: Use << to add text directly to string [OK]
Common Mistakes:
Using + which creates a new string
Trying to use non-existent methods like add
Confusing method names like append which is not standard
3. What will be the output of the following Ruby code?
str = "Hi"
str << " there"
puts str
medium
A. Hi there
B. Hi
C. ereht iH
D. Error: undefined method << for String
Solution
Step 1: Analyze the initial string and operation
The variable str starts as "Hi". The << operator appends " there" to it, modifying str to "Hi there".
Step 2: Understand the output of puts
puts str prints the string with a newline, but the output shown is the string content without the newline character visible.
Final Answer:
Hi there -> Option A
Quick Check:
Appending with << changes string to "Hi there" [OK]
Hint: Remember << adds text inside original string [OK]
Common Mistakes:
Expecting str to remain "Hi"
Confusing puts output with return value
Thinking << causes an error
4. Identify the error in the following Ruby code snippet:
text = "Hello"
text +<< " World"
puts text
medium
A. No error; output is "Hello World"
B. SyntaxError due to incorrect use of +<<
C. RuntimeError because text is immutable
D. Output is "Hello" because + does not modify original
Solution
Step 1: Check the operator usage
The code uses +<< together, which is not a valid Ruby operator or syntax.
Step 2: Understand Ruby syntax rules
Ruby does not allow chaining + and << without spaces or parentheses; this causes a syntax error.
Final Answer:
SyntaxError due to incorrect use of +<< -> Option B
Quick Check:
Invalid operator +<< causes syntax error [OK]
Hint: Operators + and << cannot be combined directly [OK]
Common Mistakes:
Assuming +<< is valid syntax
Expecting + to modify original string
Ignoring syntax errors from invalid operators
5. You want to build a sentence step by step by appending words stored in an array words = ["I", "love", "Ruby"]. Which code snippet correctly uses << to create the sentence with spaces between words?
hard
A. sentence = ""; words.each { |w| sentence + w + " " }; sentence.strip!
B. sentence = ""; words.each { |w| sentence = w + " " }; sentence.strip!
C. sentence = ""; words.each { |w| sentence << w << " " }; sentence.strip!
D. sentence = ""; words.each { |w| sentence + w << " " }; sentence.strip!
Solution
Step 1: Understand how to append words with spaces
We want to add each word and a space to the same string sentence using << which modifies in place.
Step 2: Analyze each option
sentence = ""; words.each { |w| sentence + w + " " }; sentence.strip! computes a new concatenated string but doesn't assign it back.sentence = ""; words.each { |w| sentence = w + " " }; sentence.strip! overwrites sentence with the current word + space each time.sentence = ""; words.each { |w| sentence << w << " " }; sentence.strip! correctly chains << to append the word then the space in place.sentence = ""; words.each { |w| sentence + w << " " }; sentence.strip! creates and modifies a temporary string but discards the result.
Final Answer:
sentence = ""; words.each { |w| sentence << w << " " }; sentence.strip! -> Option C
Quick Check:
Use chained << to append multiple strings [OK]
Hint: Chain << to append multiple strings efficiently [OK]
Common Mistakes:
Using + which creates new strings inside loop
Mixing + and << incorrectly
Forgetting to remove trailing space with strip!
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.