String concatenation is joining two or more strings using the + operator. For example, "Hello, " + "world!" results in "Hello, world!".
Click to reveal answer
beginner
What are string templates in Kotlin?
String templates let you insert variables or expressions directly inside a string using the $ sign. For example, val name = "Anna"; "Hello, $name!" results in "Hello, Anna!".
Click to reveal answer
intermediate
How do you include an expression inside a Kotlin string template?
Use ${expression} inside the string. For example, "Sum is ${2 + 3}" results in "Sum is 5".
Click to reveal answer
beginner
Which is easier to read and maintain: string concatenation or string templates?
String templates are easier to read and maintain because they keep the string structure clear and avoid many + operators.
Click to reveal answer
intermediate
Can string templates improve performance compared to concatenation?
Yes, string templates can be more efficient because Kotlin compiles them into StringBuilder operations internally, reducing overhead compared to many + concatenations.
Click to reveal answer
Which symbol is used to insert a variable inside a Kotlin string template?
A$
B#
C@
D&
✗ Incorrect
In Kotlin, the $ symbol is used to insert variables or expressions inside string templates.
What will the following Kotlin code print? val age = 25; println("Age: " + age)
AError
BAge: age
CAge:
DAge: 25
✗ Incorrect
Using + concatenates the string "Age: " with the value of age, printing "Age: 25".
How do you include an expression like 3 + 4 inside a Kotlin string template?
A"$3 + $4"
B"$3 + 4"
C"${3 + 4}"
D"3 + 4"
✗ Incorrect
Expressions inside ${} are evaluated and inserted into the string.
Which is generally easier to read in Kotlin for combining strings and variables?
AString concatenation with +
BString templates
CUsing println multiple times
DUsing StringBuilder manually
✗ Incorrect
String templates keep the string clear and simple, making code easier to read.
What does the following print? val name = "Sam"; println("Hello, $name!")
AHello, Sam!
BHello, $name!
CHello, !
DError
✗ Incorrect
The $name inside the string template is replaced by the value of the variable name.
Explain the difference between string concatenation and string templates in Kotlin.
Think about how you combine words and variables in a sentence.
You got /4 concepts.
How do you include a calculation inside a Kotlin string template?
Use curly braces inside the string with a $ sign.
You got /3 concepts.
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
Step 1: Understand string concatenation
Concatenation joins strings using the + operator and requires converting non-string variables to strings explicitly.
Step 2: Understand string templates
Templates allow inserting variables directly inside strings using the $ symbol, making code cleaner and easier.
Final Answer:
Concatenation uses + to join strings; templates insert variables with $ inside strings. -> Option B
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
Step 1: Recall string template syntax
In Kotlin, to insert a variable inside a string, use $variable or ${variable} if expression is needed.
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.
Final Answer:
"Hello, ${name}!" -> Option C
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
Step 1: Evaluate first println with concatenation
"Age: " + age + " years" converts age (25) to string and concatenates, resulting in "Age: 25 years".
Step 2: Evaluate second println with template
"Age: $age years" inserts the value of age (25) directly, producing "Age: 25 years".
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
Step 1: Analyze the println statement
println("Your score is: $score") prints the string with the variable inserted correctly.
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.
Final Answer:
The + operator is used incorrectly outside println. -> Option A
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
Step 1: Check concatenation approach
println("Hello, " + name + "! You are " + age + " years old.") uses concatenation with + operators and works but is less clean.
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.
Step 3: Determine correct options
Since both string template syntaxes produce the correct output, the option indicating both are correct is the answer.
Final Answer:
Both B and C -> Option D
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 unknownstrongwhile earning +1 Grip toward your certificate.