Bird
Raised Fist0
Rubyprogramming~10 mins

String concatenation and << in Ruby - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to concatenate two strings using the + operator.

Ruby
greeting = "Hello, " [1] "world!"
Drag options to blanks, or click blank then click option'
A*
B<<
C+
D-
Attempts:
3 left
💡 Hint
Common Mistakes
Using << instead of + will modify the original string instead of creating a new one.
Using * or - operators will cause errors or unexpected results.
2fill in blank
medium

Complete the code to append a string to another string using the << operator.

Ruby
name = "Ruby"
name [1] " is fun!"
Drag options to blanks, or click blank then click option'
A<<
B+
C*
D-
Attempts:
3 left
💡 Hint
Common Mistakes
Using + creates a new string instead of modifying the original.
Using * or - will cause errors or unexpected results.
3fill in blank
hard

Fix the error in the code to correctly concatenate strings using <<.

Ruby
message = "Hi"
message [1]= " there!"
Drag options to blanks, or click blank then click option'
A+
B<<
C+=
D-
Attempts:
3 left
💡 Hint
Common Mistakes
Using += works but creates a new string instead of modifying the original.
Using - causes syntax errors.
4fill in blank
hard

Complete the code to create a hash where keys are words and values are their lengths using string concatenation.

Ruby
words = ["cat", "dog", "bird"]
lengths = {word: for word in words if word[1] 3}
Drag options to blanks, or click blank then click option'
A:
B>
C<
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using == instead of > will select only words exactly 3 letters long.
Using < will select shorter words, not longer.
5fill in blank
hard

Fill all three blanks to build a hash with uppercase keys and values greater than 3.

Ruby
words = ["apple", "bat", "carrot"]
result = {word[1] word.length for word in words if word.length [2] 3 and word[3] "a"}
Drag options to blanks, or click blank then click option'
A.upcase
B>
C.include?
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using < instead of > will select shorter words.
Using == instead of .include? will cause errors.

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

  1. Step 1: Understand + behavior

    The + operator joins two strings but returns a new string without changing the original.
  2. Step 2: Understand << behavior

    The << operator appends text directly to the original string, modifying it in place.
  3. Final Answer:

    + creates a new string, << modifies the original string. -> Option A
  4. 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

  1. Step 1: Identify the correct operator for appending

    In Ruby, << is used to append text to an existing string variable.
  2. 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.
  3. Final Answer:

    greeting << " world" -> Option D
  4. 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

  1. 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".
  2. 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.
  3. Final Answer:

    Hi there -> Option A
  4. 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

  1. Step 1: Check the operator usage

    The code uses +<< together, which is not a valid Ruby operator or syntax.
  2. Step 2: Understand Ruby syntax rules

    Ruby does not allow chaining + and << without spaces or parentheses; this causes a syntax error.
  3. Final Answer:

    SyntaxError due to incorrect use of +<< -> Option B
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    sentence = ""; words.each { |w| sentence << w << " " }; sentence.strip! -> Option C
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard