Bird
Raised Fist0
Rubyprogramming~10 mins

String methods (upcase, downcase, strip) in Ruby - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - String methods (upcase, downcase, strip)
Start with original string
↓
Apply upcase method
→String in all uppercase
↓
Apply downcase method
→String in all lowercase
↓
Apply strip method
→String with no leading/trailing spaces
↓
End
The string starts as is, then you can change it to all uppercase, all lowercase, or remove spaces at the start and end.
Execution Sample
Ruby
str = "  Hello World  "
puts str.upcase
puts str.downcase
puts str.strip
This code shows how to change a string to uppercase, lowercase, and remove spaces around it.
Execution Table
StepCode LineOperationString ValueOutput
1str = " Hello World "Assign original string" Hello World "
2puts str.upcaseConvert to uppercase" HELLO WORLD " HELLO WORLD
3puts str.downcaseConvert to lowercase" hello world " hello world
4puts str.stripRemove spaces at start/end"Hello World"Hello World
💡 All string methods applied and printed; program ends.
Variable Tracker
VariableStartAfter upcaseAfter downcaseAfter strip
str" Hello World "" Hello World "" Hello World "" Hello World "
Key Moments - 2 Insights
Why does the original string 'str' not change after calling upcase, downcase, or strip?
Because these methods return a new string and do not modify the original string 'str'. This is shown in the variable_tracker where 'str' stays the same after each method call.
What does the strip method remove from the string?
It removes only the spaces at the start and end of the string, not spaces between words. This is clear in the execution_table step 4 where the output has no spaces around but the space between 'Hello' and 'World' remains.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 2. What is the output of str.upcase?
A HELLO WORLD
Bhello world
CHello World
DDLROW OLLEH
💡 Hint
Check the 'Output' column in execution_table row 2.
According to variable_tracker, what is the value of 'str' after calling strip?
A"Hello World"
B"hello world"
C" Hello World "
D"HELLO WORLD"
💡 Hint
Look at the 'After strip' column for 'str' in variable_tracker.
At which step does the string lose its leading and trailing spaces?
AStep 2
BStep 4
CStep 3
DStep 1
💡 Hint
Check the 'Operation' and 'Output' columns in execution_table to see when spaces are removed.
Concept Snapshot
String methods in Ruby:
- upcase: returns string in all uppercase
- downcase: returns string in all lowercase
- strip: removes spaces at start and end
Original string stays unchanged unless reassigned
Use puts to print results
Full Transcript
We start with a string that has spaces around it. We assign it to variable str. Then we call str.upcase which returns a new string with all letters uppercase but does not change str itself. Next, str.downcase returns a new string with all letters lowercase, again str stays the same. Finally, str.strip returns a new string with spaces removed from the start and end. The original string str remains unchanged throughout. Each method returns a new string which we print using puts.

Practice

(1/5)
1. What does the Ruby method upcase do to a string?
easy
A. Converts all letters in the string to lowercase
B. Converts all letters in the string to uppercase
C. Removes spaces from the start and end of the string
D. Reverses the string

Solution

  1. Step 1: Understand the method name

    The method upcase suggests making letters uppercase.
  2. Step 2: Recall the method effect on strings

    upcase changes all letters to uppercase, not lowercase or trimming spaces.
  3. Final Answer:

    Converts all letters in the string to uppercase -> Option B
  4. Quick Check:

    upcase = uppercase letters [OK]
Hint: Remember: upcase = uppercase letters [OK]
Common Mistakes:
  • Confusing upcase with downcase
  • Thinking upcase removes spaces
  • Assuming upcase reverses the string
2. Which of the following is the correct syntax to remove spaces from the start and end of a string str in Ruby?
easy
A. str.strip()
B. str.upcase()
C. strip(str)
D. str.trim()

Solution

  1. Step 1: Identify the method to remove spaces

    The Ruby method to remove spaces at start and end is strip, called on the string object.
  2. Step 2: Check correct method call syntax

    In Ruby, methods are called with dot notation: str.strip(). There is no trim method in Ruby.
  3. Final Answer:

    str.strip() -> Option A
  4. Quick Check:

    strip method called with dot = str.strip() [OK]
Hint: Use dot notation: string.strip() removes spaces [OK]
Common Mistakes:
  • Using strip as a standalone function
  • Using trim instead of strip
  • Calling upcase to remove spaces
3. What is the output of the following Ruby code?
str = "  Hello World  "
puts str.strip.upcase
medium
A. " HELLO WORLD "
B. " hello world "
C. "hello world"
D. "HELLO WORLD"

Solution

  1. Step 1: Apply strip to the string

    strip removes spaces at the start and end, so " Hello World " becomes "Hello World".
  2. Step 2: Apply upcase to the stripped string

    upcase converts all letters to uppercase, so "Hello World" becomes "HELLO WORLD".
  3. Final Answer:

    "HELLO WORLD" -> Option D
  4. Quick Check:

    strip + upcase = "HELLO WORLD" [OK]
Hint: strip removes spaces, upcase makes uppercase [OK]
Common Mistakes:
  • Forgetting strip removes spaces
  • Applying upcase before strip
  • Expecting original spaces to remain
4. The following Ruby code is intended to convert a string name to lowercase and remove spaces at the start and end. What is wrong?
name = "  RubyLang  "
name.downcase.strip
medium
A. The method strip does not exist
B. The methods are called in the wrong order
C. The result is not saved or printed
D. The string should be converted to uppercase instead

Solution

  1. Step 1: Check method calls and order

    Both downcase and strip are valid methods and can be chained in any order.
  2. Step 2: Check if result is used

    The code calls methods but does not save or print the result, so the original string remains unchanged.
  3. Final Answer:

    The result is not saved or printed -> Option C
  4. Quick Check:

    Method calls without assignment or output do nothing visible [OK]
Hint: Always save or print method results to see changes [OK]
Common Mistakes:
  • Thinking method order matters here
  • Assuming methods change string in place
  • Confusing strip with a non-existent method
5. You have a list of names with inconsistent spacing and letter cases:
names = ["  Alice", "BOB  ", "  cHaRlie  "]

Which Ruby code correctly cleans this list by removing spaces and making all names lowercase?
hard
A. clean_names = names.map { |n| n.strip.downcase }
B. clean_names = names.map { |n| n.downcase.chomp }
C. clean_names = names.map { |n| n.strip.upcase }
D. clean_names = names.map { |n| n.downcase }

Solution

  1. Step 1: Understand the goal

    We want to remove spaces and convert all names to lowercase.
  2. Step 2: Check each option

    clean_names = names.map { |n| n.strip.downcase } uses strip then downcase, which removes spaces first, then lowercases. clean_names = names.map { |n| n.downcase.chomp } uses chomp after downcase, but chomp removes only trailing newlines, not spaces, so spaces remain. clean_names = names.map { |n| n.strip.upcase } uses upcase which is wrong. clean_names = names.map { |n| n.downcase } does not remove spaces.
  3. Step 3: Choose best practice

    The code that uses strip to remove whitespace and downcase to lowercase correctly cleans the names.
  4. Final Answer:

    clean_names = names.map { |n| n.strip.downcase } -> Option A
  5. Quick Check:

    strip then downcase cleans names correctly [OK]
Hint: Strip spaces first, then change case for clean strings [OK]
Common Mistakes:
  • Using upcase instead of downcase
  • Confusing chomp with strip
  • Forgetting to map over the list
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