String Interpolation refers to substitution of defined variables or expressions in a given String with respected values. String Interpolation provides an easy way to process String literals. To apply this feature of Scala, we must follow few rules:
- String must be defined with starting character as s / f /raw.
- Variables in the String must have ‘$’ as prefix.
- Expressions must be enclosed within curly braces ({, }) and ‘$’ is added as prefix.
Syntax:
// x and y are defined
val str = s"Sum of $x and $y is ${x+y}"
Types of String Interpolator
- s Interpolator: Within the String, we can access variables, object fields, functions calls, etc.
Example 1: variables and expressions:
object GFG
{
def main(args : Array[String])
{
val x = 20
val y = 10
val str 1 = "Sum of $x and $y is ${x+y}"
val str 2 = s "Sum of $x and $y is ${x+y}"
println( "str1: " +str 1 )
println( "str2: " +str 2 )
}
}
|
Output:
str1: Sum of $x and $y is ${x+y}
str2: Sum of 20 and 10 is 30
Example 2: function call
object GFG
{
def add(a : Int, b : Int) : Int
=
{
a+b
}
def main(args : Array[String])
{
val x = 20
val y = 10
val str 1 = "Sum of $x and $y is ${add(x, y)}"
val str 2 = s "Sum of $x and $y is ${add(x, y)}"
println( "str1: " + str 1 )
println( "str2: " + str 2 )
}
}
|
Output:
str1: Sum of $x and $y is ${add(x, y)}
str2: Sum of 20 and 10 is 30
- f Interpolator: This interpolation helps in formatting numbers easily.
To understand how format specifiers work refer Format Specifiers.
Example 1: printing upto 2 decimal place:
object GFG
{
def main(args : Array[String])
{
val x = 20.6
val str 1 = "Value of x is $x%.2f"
val str 2 = f "Value of x is $x%.2f"
println( "str1: " + str 1 )
println( "str2: " + str 2 )
}
}
|
Output:
str1: Value of x is $x%.2f
str2: Value of x is 20.60
Example 2: setting width in integers:
object GFG
{
def main(args : Array[String])
{
val x = 11
val str 1 = "Value of x is $x%04d"
val str 2 = f "Value of x is $x%04d"
println(str 1 )
println(str 2 )
}
}
|
Output:
Value of x is $x%04d
Value of x is 0011
If we try to pass a Double value while formatting is done using %d specifier, compiler outputs an error. In case of %f specifier, passing Int is acceptable.
- raw Interpolator: String Literal should start with ‘raw’. This interpolator treats escape sequences same as any other character in a String.
Example :printing escape sequence:
object GFG
{
def main(args : Array[String])
{
val str 1 = "Hello\nWorld"
val str 2 = raw "Hello\nWorld"
println( "str1: " + str 1 )
println( "str2: " + str 2 )
}
}
|
Output:
str1: Hello
World
str2: Hello\nWorld
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
26 Feb, 2019
Like Article
Save Article