Bird
Raised Fist0
Kotlinprogramming~5 mins

String templates and interpolation in Kotlin

Choose your learning style10 modes available
Introduction

String templates let you put values right inside text easily. This makes your messages clear and quick to write.

When you want to show a user's name inside a greeting message.
When you need to include numbers or results inside a sentence.
When building dynamic messages that change based on data.
When formatting output for logs or reports with variable info.
Syntax
Kotlin
val message = "Hello, $name!"
val info = "You have ${count + 1} new messages."

Use $variableName to insert simple variables.

Use ${expression} to insert calculations or more complex code.

Examples
Insert a simple variable name inside the string.
Kotlin
val name = "Anna"
val greeting = "Hi, $name!"
Calculate sum inside the string using ${}.
Kotlin
val apples = 3
val oranges = 5
val total = "Total fruits: ${apples + oranges}"
Use \$ to show a literal dollar sign before a variable.
Kotlin
val price = 9.99
val message = "Price is \$$price"
Sample Program

This program uses string templates to show a greeting with the user's name, number of items, and total cost. It also shows how to print a dollar sign.

Kotlin
fun main() {
    val user = "Sam"
    val items = 4
    val pricePerItem = 2.5
    val totalCost = items * pricePerItem

    val message = "Hello, $user! You bought $items items. Total cost: \$$totalCost"
    println(message)
}
OutputSuccess
Important Notes

Remember to escape the dollar sign \$ if you want it to appear as a normal character.

String templates work only inside double quotes "", not single quotes.

Summary

String templates let you put variables or expressions inside strings easily.

Use $variable for simple variables and ${expression} for calculations.

Escape dollar signs with \$ to show them literally.

Practice

(1/5)
1. What is the correct way to include a variable name inside a Kotlin string using string templates?
easy
A. println("Hello, +name+")
B. println("Hello, {name}!")
C. println("Hello, $name!")
D. println("Hello, %name%!")

Solution

  1. Step 1: Understand Kotlin string templates

    Kotlin uses $variable to insert variable values inside strings.
  2. Step 2: Identify correct syntax for variable insertion

    The syntax $name directly inserts the value of name into the string.
  3. Final Answer:

    println("Hello, $name!") -> Option C
  4. Quick Check:

    Use $variable for string templates [OK]
Hint: Use $variable to insert variables inside strings [OK]
Common Mistakes:
  • Using curly braces without $ like {name}
  • Concatenating with + inside strings
  • Using % signs instead of $
2. Which of the following is the correct syntax to include an expression inside a Kotlin string template?
easy
A. println("Sum is ${a + b}")
B. println("Sum is $a + $b")
C. println("Sum is $[a + b]")
D. println("Sum is $(a + b)")

Solution

  1. Step 1: Recall expression syntax in string templates

    Kotlin uses ${expression} to evaluate expressions inside strings.
  2. Step 2: Identify correct expression usage

    ${a + b} correctly calculates the sum and inserts it.
  3. Final Answer:

    println("Sum is ${a + b}") -> Option A
  4. Quick Check:

    Use ${expression} for calculations inside strings [OK]
Hint: Use ${} to insert expressions inside strings [OK]
Common Mistakes:
  • Using $a + $b prints variables separately, not sum
  • Using square brackets [] instead of curly braces
  • Using parentheses () without $
3. What will be the output of the following Kotlin code?
val price = 10
val tax = 2
println("Total: ${price + tax}")
medium
A. Total: 10 + 2
B. Total: 12
C. Total: ${price + tax}
D. Total: price + tax

Solution

  1. Step 1: Evaluate the expression inside the string template

    The expression ${price + tax} adds 10 + 2 = 12.
  2. Step 2: Print the resulting string

    The string becomes "Total: 12" and is printed.
  3. Final Answer:

    Total: 12 -> Option B
  4. Quick Check:

    Expression inside ${} is evaluated [OK]
Hint: Expressions inside ${} are calculated before printing [OK]
Common Mistakes:
  • Printing the expression literally without evaluation
  • Confusing $variable with ${expression}
  • Expecting concatenation without braces
4. Identify the error in this Kotlin code snippet:
val count = 5
println("Count is $count+1")
medium
A. It will print 'Count is 5+1' literally, not sum
B. Runtime error because of invalid string
C. Syntax error due to missing braces
D. It will print 'Count is 6' correctly

Solution

  1. Step 1: Understand how $count+1 is interpreted

    Kotlin treats $count as variable and +1 as plain text, so it prints "5+1" literally.
  2. Step 2: Correct way to calculate sum in string

    Use ${count + 1} to evaluate the sum inside the string.
  3. Final Answer:

    It will print 'Count is 5+1' literally, not sum -> Option A
  4. Quick Check:

    Use ${} for expressions, else prints text [OK]
Hint: Use ${} to calculate expressions, else prints text [OK]
Common Mistakes:
  • Assuming $count+1 calculates sum automatically
  • Missing braces for expressions
  • Confusing string concatenation with templates
5. You want to print the price with a dollar sign, for example: $20. Which Kotlin string correctly shows the dollar sign before the number stored in price?
hard
A. println("$price")
B. println("\$price")
C. println("$\$price")
D. println("\$$price")

Solution

  1. Step 1: Understand escaping dollar sign in Kotlin strings

    To print a literal dollar sign, use \$ to escape it.
  2. Step 2: Combine escaped dollar sign with variable

    "\$$price" prints a literal $ followed by the value of price.
  3. Final Answer:

    println("\$$price") -> Option D
  4. Quick Check:

    Escape $ with \$ to print it literally [OK]
Hint: Escape $ as \$ to print dollar sign literally [OK]
Common Mistakes:
  • Not escaping $ prints variable name or causes error
  • Using $\$ instead of \$$
  • Confusing escape sequences
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