📖 Scenario: You are helping a small bookstore organize customer feedback. The feedback comes as a long string with customer names and their comments separated by commas. You want to clean and split this data to make it easier to read and analyze.
🎯 Goal: Build a Kotlin program that trims extra spaces from the feedback string, splits it into individual feedback entries, and extracts the customer names using substring.
📋 What You'll Learn
Create a string variable with the exact feedback text
Create a variable to hold the trimmed version of the feedback string
Split the trimmed string into a list of feedback entries
Extract customer names from each feedback entry using substring
Print the list of customer names
💡 Why This Matters
🌍 Real World
Cleaning and organizing customer feedback or any text data is common in businesses to understand opinions and improve services.
💼 Career
Knowing how to manipulate strings is essential for software developers, data analysts, and anyone working with text processing or user input.
Progress0 / 4 steps
1
Create the feedback string
Create a string variable called feedback with this exact value: " Alice: Loved the new books, Bob: Great service, Charlie: Will visit again "
Kotlin
Hint
Use val feedback = "your string here" to create the string.
2
Trim the feedback string
Create a variable called trimmedFeedback that holds the result of trimming spaces from feedback using the trim() method
Kotlin
Hint
Use val trimmedFeedback = feedback.trim() to remove spaces at the start and end.
3
Split the trimmed feedback into entries
Create a variable called entries that splits trimmedFeedback by comma and space ", " using the split() method
Kotlin
Hint
Use val entries = trimmedFeedback.split(", ") to split the string into parts.
4
Extract and print customer names
Create a list called names by extracting the substring before the colon ':' from each entry in entries. Then print names. Use a for loop with variable entry and the substringBefore method.
Kotlin
Hint
Use entry.substringBefore(':') inside a loop to get each name, then print the list.
Practice
(1/5)
1. What does the Kotlin trim() method do when called on a string?
easy
A. Converts the string to uppercase
B. Splits the string into parts based on spaces
C. Extracts a part of the string by index
D. Removes spaces from the start and end of the string
Solution
Step 1: Understand the purpose of trim()
The trim() method removes whitespace characters from the beginning and end of a string.
Step 2: Compare with other string methods
Unlike split() or substring(), trim() does not split or extract parts but cleans spaces around the string.
Final Answer:
Removes spaces from the start and end of the string -> Option D
Quick Check:
trim() removes outer spaces [OK]
Hint: trim() cleans spaces only at string edges [OK]
Common Mistakes:
Thinking trim() splits the string
Confusing trim() with substring()
Assuming trim() changes case
2. Which of the following is the correct Kotlin syntax to get a substring from index 2 to 5 (exclusive) of a string text?
easy
A. text.substring(2..5)
B. text.subString(2, 5)
C. text.substring(2, 5)
D. text.substring(2, 6)
Solution
Step 1: Recall Kotlin substring syntax
The correct method call is substring(startIndex, endIndex) where endIndex is exclusive.
Step 2: Check each option
text.substring(2..5) uses a range which is invalid for substring. text.subString(2, 5) has wrong capitalization. text.substring(2, 6) uses 6 as endIndex which extracts more characters than asked.
Final Answer:
text.substring(2, 5) -> Option C
Quick Check:
substring(start, end) uses exclusive end [OK]
Hint: Use substring(start, end) with end exclusive [OK]
Common Mistakes:
Using range syntax inside substring
Wrong method name capitalization
Confusing inclusive vs exclusive end index
3. What is the output of the following Kotlin code?
val data = " apple, banana , cherry "
val fruits = data.trim().split(",")
println(fruits[1].trim())
medium
A. ananab
B. banana
C. anana
D. banan
Solution
Step 1: Apply trim() on the original string
Calling trim() removes spaces at start and end, so string becomes "apple, banana , cherry".
Step 2: Split by comma and trim the second element
Splitting by "," gives ["apple", " banana ", " cherry"]. Then trimming the second element " banana " removes spaces, resulting in "banana".
Final Answer:
banana -> Option B
Quick Check:
trim() cleans spaces after split [OK]
Hint: Trim after split to remove spaces around parts [OK]
Common Mistakes:
Not trimming after split, leaving spaces
Assuming split trims automatically
Confusing index positions in list
4. Find the error in this Kotlin code snippet:
val sentence = "Hello World"
val part = sentence.substring(6, 5)
println(part)
medium
A. substring end index is less than start index causing error
B. substring method requires only one argument
C. substring indexes are inclusive, so 6 to 5 is valid
D. No error, output is "World"
Solution
Step 1: Check substring parameters
substring(startIndex, endIndex) requires startIndex ≤ endIndex. Here, startIndex=6 and endIndex=5, which is invalid.
Step 2: Understand Kotlin substring behavior
This causes an exception because the end index is less than the start index.
Final Answer:
substring end index is less than start index causing error -> Option A
Quick Check:
substring end must be ≥ start [OK]
Hint: End index must be >= start index in substring [OK]
Common Mistakes:
Assuming substring indexes are inclusive
Using end index less than start index
Thinking substring accepts one argument only
5. Given a string input = " red, green , blue , yellow ", write Kotlin code to create a list of trimmed color names without spaces. Which code snippet correctly achieves this?
hard
A. input.split(",").map { it.trim() }
B. input.trim().split(",")
C. input.split(",").trim()
D. input.trim().map { it.split(",") }
Solution
Step 1: Split the string by commas
Using split(",") breaks the string into parts including spaces.
Step 2: Trim spaces from each part
Using map { it.trim() } removes spaces from each color name, producing a clean list.
Step 3: Evaluate other options
input.trim().split(",") trims only the ends before splitting, so inner spaces remain. input.split(",").trim() tries to trim a list, which is invalid. input.trim().map { it.split(",") } trims the whole string then maps incorrectly.
Final Answer:
input.split(",").map { it.trim() } -> Option A
Quick Check:
Split then trim each part for clean list [OK]
Hint: Split first, then trim each piece with map [OK]
Common Mistakes:
Trimming before split only removes outer spaces
Trying to trim a list directly
Incorrect chaining of methods
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.