Bird
Raised Fist0
Kotlinprogramming~10 mins

String concatenation vs templates in Kotlin - Interactive 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.

Kotlin
val 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 arithmetic operators like - or * instead of + for strings.
2fill in blank
medium

Complete the code to use a string template to insert the variable name into the greeting.

Kotlin
val name = "Alice"
val greeting = "Hello, [1]!"
Drag options to blanks, or click blank then click option'
A{name}
Bname
C"name"
D$name
Attempts:
3 left
💡 Hint
Common Mistakes
Writing the variable name without $ inside the string.
Using curly braces without $.
3fill in blank
hard

Fix the error in the string template to correctly include the variable age.

Kotlin
val age = 30
val message = "I am [1] years old."
Drag options to blanks, or click blank then click option'
A${age}
Bage
C$age
D"age"
Attempts:
3 left
💡 Hint
Common Mistakes
Using $variable without braces when followed by text.
Writing variable name without $.
4fill in blank
hard

Fill both blanks to create a map of words to their lengths, using string templates and a condition.

Kotlin
val words = listOf("apple", "bat", "carrot")
val lengths = {word: [1] for word in words if word.length [2] 3}
Drag options to blanks, or click blank then click option'
Aword.length
B>
C<
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using word instead of word.length for the value.
Using wrong comparison operators like < or ==.
5fill in blank
hard

Fill all three blanks to create a message using string templates with expressions.

Kotlin
val x = 5
val y = 10
val message = "Sum of [1] and [2] is [3]"
Drag options to blanks, or click blank then click option'
Ax
By
C${x + y}
D$x
Attempts:
3 left
💡 Hint
Common Mistakes
Not using $ before variables inside strings.
Not using ${} for expressions.

Practice

(1/5)
1. What is the main difference between string concatenation and string templates in Kotlin?
easy
A. Templates require explicit conversion of variables to strings.
B. Concatenation uses + to join strings; templates insert variables with $ inside strings.
C. Concatenation is faster than templates in all cases.
D. Concatenation can only join strings, templates can join numbers only.

Solution

  1. Step 1: Understand string concatenation

    Concatenation joins strings using the + operator and requires converting non-string variables to strings explicitly.
  2. Step 2: Understand string templates

    Templates allow inserting variables directly inside strings using the $ symbol, making code cleaner and easier.
  3. Final Answer:

    Concatenation uses + to join strings; templates insert variables with $ inside strings. -> Option B
  4. Quick Check:

    Concatenation vs templates = C [OK]
Hint: Templates use $ for variables; concatenation uses + [OK]
Common Mistakes:
  • Thinking templates need explicit conversion
  • Believing concatenation is always faster
  • Confusing syntax of templates and concatenation
2. Which of the following is the correct Kotlin syntax to insert a variable name into a string using templates?
easy
A. "Hello, {name}!"
B. "Hello, \$name!"
C. "Hello, ${name}!"
D. "Hello, " + name + "!"

Solution

  1. Step 1: Recall string template syntax

    In Kotlin, to insert a variable inside a string, use $variable or ${variable} if expression is needed.
  2. Step 2: Identify correct usage for variable insertion

    For simple variables, $name works, but to be safe and clear, especially in complex expressions, ${name} is preferred.
  3. Final Answer:

    "Hello, ${name}!" -> Option C
  4. Quick Check:

    Variable insertion = ${name} [OK]
Hint: Use ${variable} for safe template insertion [OK]
Common Mistakes:
  • Using curly braces without $
  • Using + inside templates
  • Forgetting $ before variable
3. What will be the output of the following Kotlin code?
val age = 25
println("Age: " + age + " years")
println("Age: $age years")
medium
A. Age: 25 years Age: 25 years
B. Age: 25 years Age: $age years
C. Age: age years Age: 25 years
D. Age: 25 years Age: age years

Solution

  1. Step 1: Evaluate first println with concatenation

    "Age: " + age + " years" converts age (25) to string and concatenates, resulting in "Age: 25 years".
  2. Step 2: Evaluate second println with template

    "Age: $age years" inserts the value of age (25) directly, producing "Age: 25 years".
  3. Final Answer:

    Age: 25 years Age: 25 years -> Option A
  4. Quick Check:

    Concatenation and template output same = A [OK]
Hint: Templates insert values directly; concatenation converts explicitly [OK]
Common Mistakes:
  • Expecting $age to print literally in templates
  • Confusing variable name with value
  • Missing conversion in concatenation
4. Identify the error in this Kotlin code snippet:
val score = 90
println("Your score is: $score") + " points"
medium
A. The + operator is used incorrectly outside println.
B. Variable score should be inside curly braces ${score}.
C. Missing semicolon after println statement.
D. String templates cannot be combined with + operator.

Solution

  1. Step 1: Analyze the println statement

    println("Your score is: $score") prints the string with the variable inserted correctly.
  2. Step 2: Check the use of + operator

    The + " points" is outside the println call, so it tries to add a string to the Unit result of println, causing an error.
  3. Final Answer:

    The + operator is used incorrectly outside println. -> Option A
  4. Quick Check:

    Operator placement error = B [OK]
Hint: Ensure + is inside println or use separate print [OK]
Common Mistakes:
  • Thinking templates need curly braces always
  • Adding + after println call
  • Expecting semicolon in Kotlin
5. You want to create a message showing a user's name and age using Kotlin string templates. The variables are val name = "Anna" and val age = 30. Which code snippet correctly produces the output Hello, Anna! You are 30 years old.?
hard
A. println("Hello, " + name + "! You are " + age + " years old.")
B. println("Hello, $name! You are $age years old.")
C. println("Hello, ${name}! You are ${age} years old.")
D. Both B and C

Solution

  1. Step 1: Check concatenation approach

    println("Hello, " + name + "! You are " + age + " years old.") uses concatenation with + operators and works but is less clean.
  2. Step 2: Check template approaches

    String templates using $variable and ${variable} syntax are both correct: simple $variable vs ${variable}, both valid and produce the same output.
  3. Step 3: Determine correct options

    Since both string template syntaxes produce the correct output, the option indicating both are correct is the answer.
  4. Final Answer:

    Both B and C -> Option D
  5. Quick Check:

    Templates with $ or ${} = D [OK]
Hint: Use $var or ${var} for templates; both work [OK]
Common Mistakes:
  • Thinking only one template syntax is correct
  • Confusing concatenation with templates
  • Missing quotes around strings
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