Introduction
String templates in Kotlin provide a way to embed expressions within string literals, making string manipulation more concise and readable. String templates allow for the direct inclusion of variables and expressions inside strings, eliminating the need for concatenation operators. This chapter will cover the syntax and usage of string templates in Kotlin with examples.
Basic String Templates
String templates are created by placing a dollar sign $
before a variable or an expression inside a string literal.
Example
fun main() {
val name = "Alice"
val age = 25
val message = "My name is $name and I am $age years old."
println(message)
}
Explanation:
$name
: Embeds the value of thename
variable into the string.$age
: Embeds the value of theage
variable into the string.
Output:
My name is Alice and I am 25 years old.
Complex Expressions
For complex expressions, you can use curly braces {}
to enclose the expression inside a string template.
Example
fun main() {
val a = 5
val b = 10
val sum = "The sum of $a and $b is ${a + b}."
println(sum)
}
Explanation:
${a + b}
: Evaluates the expressiona + b
and embeds the result into the string.
Output:
The sum of 5 and 10 is 15.
Escaping Characters
To include a literal dollar sign $
in a string template, you need to escape it using a backslash \
.
Example
fun main() {
val price = 9.99
val message = "The price is \$${price}."
println(message)
}
Explanation:
\$${price}
: Escapes the dollar sign to include it as a literal character in the string, while still embedding the value ofprice
.
Output:
The price is $9.99.
Multiline String Templates
Kotlin supports multiline string literals using triple quotes """
. You can also use string templates within these multiline strings.
Example
fun main() {
val name = "Bob"
val age = 30
val message = """
|Name: $name
|Age: $age
|""".trimMargin()
println(message)
}
Explanation:
- Triple quotes
"""
are used to define a multiline string literal. |
is used as the default margin prefix fortrimMargin()
, which removes the margin prefix from each line in the string.
Output:
Name: Bob
Age: 30
String Templates in Functions
String templates can also be used in function return values and parameters.
Example
fun main() {
val result = greet("Charlie", 35)
println(result)
}
fun greet(name: String, age: Int): String {
return "Hello, $name! You are $age years old."
}
Explanation:
- The
greet
function returns a string that includes thename
andage
parameters using string templates.
Output:
Hello, Charlie! You are 35 years old.
Combining String Templates with String Functions
You can combine string templates with various string functions to manipulate and format strings.
Example
fun main() {
val firstName = "John"
val lastName = "Doe"
val fullName = "${firstName.toUpperCase()} ${lastName.toLowerCase()}"
println(fullName)
}
Explanation:
${firstName.toUpperCase()}
: Converts thefirstName
to uppercase and embeds the result into the string.${lastName.toLowerCase()}
: Converts thelastName
to lowercase and embeds the result into the string.
Output:
JOHN doe
Example Program with String Templates
Here is an example program that demonstrates the use of various string templates in Kotlin:
fun main() {
// Basic string template
val name = "Alice"
val age = 25
val message = "My name is $name and I am $age years old."
println(message)
// Complex expressions in string templates
val a = 5
val b = 10
val sum = "The sum of $a and $b is ${a + b}."
println(sum)
// Escaping characters in string templates
val price = 9.99
val priceMessage = "The price is \$${price}."
println(priceMessage)
// Multiline string templates
val multilineMessage = """
|Name: $name
|Age: $age
|""".trimMargin()
println(multilineMessage)
// String templates in functions
val result = greet("Charlie", 35)
println(result)
// Combining string templates with string functions
val firstName = "John"
val lastName = "Doe"
val fullName = "${firstName.toUpperCase()} ${lastName.toLowerCase()}"
println(fullName)
}
fun greet(name: String, age: Int): String {
return "Hello, $name! You are $age years old."
}
Output:
My name is Alice and I am 25 years old.
The sum of 5 and 10 is 15.
The price is $9.99.
Name: Alice
Age: 25
Hello, Charlie! You are 35 years old.
JOHN doe
Conclusion
In this chapter, you learned about string templates in Kotlin, including their syntax and usage for embedding variables and expressions within string literals. You also explored how to use string templates with complex expressions, escape characters, multiline strings, and string functions. Understanding how to use string templates is essential for writing concise and readable string manipulation code in your Kotlin programs.