Bird
Raised Fist0
Kotlinprogramming~20 mins

String methods (substring, split, trim) in Kotlin - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
String Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of substring and trim
What is the output of this Kotlin code?
Kotlin
val text = "  Kotlin Programming  "
val result = text.trim().substring(0, 6)
println(result)
A" Kot"
B" Kotlin"
C"Kotlin "
D"Kotlin"
Attempts:
2 left
💡 Hint
Remember trim() removes spaces at the start and end before substring is applied.
❓ Predict Output
intermediate
2:00remaining
Splitting a string and accessing elements
What will be printed by this Kotlin code?
Kotlin
val data = "apple,banana, cherry, date"
val fruits = data.split(",")
println(fruits[2].trim())
A"banana"
B" cherry"
C"cherry"
D"date"
Attempts:
2 left
💡 Hint
Check how split works and remember to trim spaces after splitting.
🔧 Debug
advanced
2:00remaining
Identify the error in substring usage
What error will this Kotlin code produce?
Kotlin
val s = "Hello"
val sub = s.substring(3, 2)
println(sub)
AStringIndexOutOfBoundsException
BPrints "lo"
CCompilation error: wrong substring parameters
DNo output, prints empty string
Attempts:
2 left
💡 Hint
Check the order of start and end indices in substring.
❓ Predict Output
advanced
2:00remaining
Count words after splitting and trimming
What is the output of this Kotlin code?
Kotlin
val sentence = "  Kotlin is fun  "
val words = sentence.trim().split(" ").filter { it.isNotEmpty() }
println(words.size)
A2
B3
C5
D4
Attempts:
2 left
💡 Hint
Trim removes spaces at ends, split by space, then filter removes empty strings.
🧠 Conceptual
expert
3:00remaining
Understanding substring and split behavior
Given the Kotlin code below, what will be the output?
Kotlin
val input = "one,two,,four,"
val parts = input.split(",")
val sub = parts[2].substring(0, 0)
println("${parts.size} ${sub.isEmpty()}")
A"5 true"
B"4 false"
C"5 false"
D"4 true"
Attempts:
2 left
💡 Hint
Check how split handles consecutive commas and trailing commas, and substring with same start and end index.

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

  1. Step 1: Understand the purpose of trim()

    The trim() method removes whitespace characters from the beginning and end of a string.
  2. Step 2: Compare with other string methods

    Unlike split() or substring(), trim() does not split or extract parts but cleans spaces around the string.
  3. Final Answer:

    Removes spaces from the start and end of the string -> Option D
  4. 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

  1. Step 1: Recall Kotlin substring syntax

    The correct method call is substring(startIndex, endIndex) where endIndex is exclusive.
  2. 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.
  3. Final Answer:

    text.substring(2, 5) -> Option C
  4. 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

  1. Step 1: Apply trim() on the original string

    Calling trim() removes spaces at start and end, so string becomes "apple, banana , cherry".
  2. 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".
  3. Final Answer:

    banana -> Option B
  4. 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

  1. Step 1: Check substring parameters

    substring(startIndex, endIndex) requires startIndex ≤ endIndex. Here, startIndex=6 and endIndex=5, which is invalid.
  2. Step 2: Understand Kotlin substring behavior

    This causes an exception because the end index is less than the start index.
  3. Final Answer:

    substring end index is less than start index causing error -> Option A
  4. 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

  1. Step 1: Split the string by commas

    Using split(",") breaks the string into parts including spaces.
  2. Step 2: Trim spaces from each part

    Using map { it.trim() } removes spaces from each color name, producing a clean list.
  3. 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.
  4. Final Answer:

    input.split(",").map { it.trim() } -> Option A
  5. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard