Bird
Raised Fist0
Kotlinprogramming~10 mins

StringBuilder for performance in Kotlin - Interactive Code Practice

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

Complete the code to create a new StringBuilder instance.

Kotlin
val sb = [1]()
Drag options to blanks, or click blank then click option'
AString
BStringBuffer
CStringBuilder
DStringBuilderBuilder
Attempts:
3 left
💡 Hint
Common Mistakes
Using String instead of StringBuilder
Using a non-existent class like StringBuilderBuilder
2fill in blank
medium

Complete the code to append the word "Hello" to the StringBuilder.

Kotlin
sb.[1]("Hello")
Drag options to blanks, or click blank then click option'
Aappend
Badd
Cinsert
Dconcat
Attempts:
3 left
💡 Hint
Common Mistakes
Using add which does not exist
Using concat which is for Strings, not StringBuilder
3fill in blank
hard

Fix the error in the code to convert the StringBuilder content to a String.

Kotlin
val result = sb.[1]()
Drag options to blanks, or click blank then click option'
AtoString
BasString
CtoStr
Dstringify
Attempts:
3 left
💡 Hint
Common Mistakes
Using toStr which does not exist
Using stringify which is not a Kotlin method
4fill in blank
hard

Fill both blanks to build a string with numbers 1 to 3 separated by commas.

Kotlin
val sb = StringBuilder()
for (i in 1..3) {
    sb.[1](i)
    if (i [2] 3) sb.append(", ")
}
Drag options to blanks, or click blank then click option'
Aappend
B<
C>
Dinsert
Attempts:
3 left
💡 Hint
Common Mistakes
Using insert instead of append
Using > instead of < in the condition
5fill in blank
hard

Fill all three blanks to create a StringBuilder, append "Kotlin", and convert to String.

Kotlin
val [1] = [2]()
[1].append("Kotlin")
val result = [1].toString()
Drag options to blanks, or click blank then click option'
Abuilder
BStringBuilder
Csb
DStringBuffer
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'builder' as variable but not consistently
Using StringBuffer which is different

Practice

(1/5)
1. What is the main advantage of using StringBuilder in Kotlin when combining many strings?
easy
A. It automatically sorts the strings alphabetically.
B. It stores strings in a database for later use.
C. It converts strings to uppercase by default.
D. It improves performance by reducing the number of string copies.

Solution

  1. Step 1: Understand string concatenation cost

    Regular string concatenation creates new strings each time, which is slow.
  2. Step 2: Role of StringBuilder

    StringBuilder appends strings without creating new copies each time, improving speed.
  3. Final Answer:

    It improves performance by reducing the number of string copies. -> Option D
  4. Quick Check:

    StringBuilder reduces copies [OK]
Hint: StringBuilder avoids repeated copying for faster string joining [OK]
Common Mistakes:
  • Thinking StringBuilder sorts strings
  • Assuming it changes string case automatically
  • Believing it stores strings externally
2. Which of the following is the correct way to create a StringBuilder and add text in Kotlin?
easy
A. val sb = StringBuilder(); sb.add("Hello")
B. val sb = StringBuilder(); sb.append("Hello")
C. val sb = StringBuilder("Hello"); sb.add("World")
D. val sb = StringBuilder(); sb.insert("Hello")

Solution

  1. Step 1: Check StringBuilder creation

    Creating with StringBuilder() is correct syntax.
  2. Step 2: Identify correct method to add text

    The method to add text is append(), not add() or insert() with a string argument.
  3. Final Answer:

    val sb = StringBuilder(); sb.append("Hello") -> Option B
  4. Quick Check:

    Use append() to add text [OK]
Hint: Use append() method to add text to StringBuilder [OK]
Common Mistakes:
  • Using add() instead of append()
  • Using insert() incorrectly
  • Passing strings to insert() without index
3. What will be the output of the following Kotlin code?
val sb = StringBuilder()
sb.append("Hi")
sb.append(", ")
sb.append("there!")
println(sb.toString())
medium
A. Hi, there!
B. Hi there!
C. Hi,there!
D. Hi, there

Solution

  1. Step 1: Trace each append call

    First append adds "Hi", second adds ", ", third adds "there!".
  2. Step 2: Combine all appended strings

    Combined string is "Hi, there!" exactly as appended.
  3. Final Answer:

    Hi, there! -> Option A
  4. Quick Check:

    Appended strings combined [OK]
Hint: Append strings in order, then call toString() [OK]
Common Mistakes:
  • Missing spaces in appended strings
  • Forgetting to call toString()
  • Assuming append adds spaces automatically
4. Identify the error in the following Kotlin code using StringBuilder:
val sb = StringBuilder()
sb.append("Hello")
sb.append(123)
println(sb)
medium
A. Cannot append an integer directly to StringBuilder.
B. append() method requires two arguments.
C. There is no error in the code.
D. StringBuilder must be initialized with a string.

Solution

  1. Step 1: Check append usage

    append can accept integers and converts them to string automatically, so no error here.
  2. Step 2: Check printing StringBuilder directly

    Printing StringBuilder object directly calls its toString() method, so it prints the content correctly; no error here either.
  3. Step 3: Re-examine options

    Actually, printing sb directly works fine in Kotlin, so no error. The code is correct.
  4. Final Answer:

    No error; code runs and prints Hello123 -> Option C
  5. Quick Check:

    Printing StringBuilder directly works [OK]
Hint: StringBuilder prints content directly without toString() [OK]
Common Mistakes:
  • Thinking append can't take integers
  • Assuming toString() is mandatory for printing
  • Believing append needs two arguments
5. You want to build a comma-separated list of numbers from 1 to 5 using StringBuilder efficiently. Which code snippet correctly avoids adding an extra comma at the end?
hard
A. val sb = StringBuilder() for (i in 1..5) { sb.append(i) if (i != 5) sb.append(",") } sb.toString()
B. val sb = StringBuilder() for (i in 1..5) { if (i > 0) sb.append(i).append(",") else sb.append(i) } sb.toString()
C. val sb = StringBuilder() for (i in 1..5) { sb.append(i).append(",") } sb.toString()
D. val sb = StringBuilder() for (i in 1..5) { sb.append(i) sb.append(",") } sb.toString().removePrefix(",")

Solution

  1. Step 1: Analyze each option for trailing comma

    val sb = StringBuilder() for (i in 1..5) { sb.append(i).append(",") } sb.toString() adds comma after every number, including last, causing extra comma.
  2. Step 2: Check conditional comma addition

    val sb = StringBuilder() for (i in 1..5) { if (i > 0) sb.append(i).append(",") else sb.append(i) } sb.toString() tries to avoid comma on last number by if-else, but condition i > 0 is always true, so always appends comma after each number, causing trailing comma.
  3. Step 3: Verify correct conditional append

    val sb = StringBuilder() for (i in 1..5) { sb.append(i) if (i != 5) sb.append(",") } sb.toString() appends number first, then adds comma only if not last number, correctly avoiding trailing comma.
  4. Step 4: Check the remove prefix method

    val sb = StringBuilder() for (i in 1..5) { sb.append(i) sb.append(",") } sb.toString().removePrefix(",") appends comma always, then removes prefix "," from start (which doesn't exist), leaving trailing comma.
  5. Final Answer:

    val sb = StringBuilder() for (i in 1..5) { sb.append(i) if (i != 5) sb.append(",") } sb.toString() -> Option A
  6. Quick Check:

    Append comma only if not last [OK]
Hint: Add comma only if not last item in loop [OK]
Common Mistakes:
  • Adding comma after every item including last
  • Appending number twice in conditional branches
  • Removing suffix after building string instead of conditional append
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