Scala | 字符串插值
字符串插值 指的是将给定字符串中已定义变量或表达式替换为相应的值。字符串插值提供了一种处理字符串文本的简单方法。要应用Scala的此功能,我们必须遵循几个规则:
- 字符串必须以起始字符 s / f / raw 定义。
- 在字符串中的变量必须以‘$’为前缀。
- 表达式必须用花括号({, })括起来,并添加‘$’作为前缀。
语法:
// x 和 y 被定义
val str = s"Sum of x andy is ${x+y}"
** 字符串插值器类型 **
- s Interpolator: 在字符串内部,我们可以访问变量、对象字段、函数调用等。
示例 1: 变量和表达式:
// Scala程序
// s插值器
// 创建对象
object GFG
{
// 主方法
def main(args:Array[String])
{
val x = 20
val y = 10
// 没有s插值器
val str1 = "Sum of x andy is {x+y}"
// 使用s插值器
val str2 = s"Sum ofx and y is{x+y}"
println("str1: "+str1)
println("str2: "+str2)
}
}
输出:
str1: Sum of x andy is ${x+y}
str2: Sum of 20 and 10 is 30
示例 2: 函数调用
// Scala程序
// s插值器
// 创建对象
object GFG
{
// 添加两个数
def add(a:Int, b:Int):Int
=
{
a+b
}
// 主方法
def main(args:Array[String])
{
val x = 20
val y = 10
// 没有s插值器
val str1 = "Sum of x andy is {add(x, y)}"
// 使用s插值器
val str2 = s"Sum ofx and y is{add(x, y)}"
println("str1: " + str1)
println("str2: " + str2)
}
}
输出:
str1: Sum of x andy is ${add(x, y)}
str2: Sum of 20 and 10 is 30
- f Interpolator: 这个插值器可以帮助我们更容易地格式化数字。
要理解格式说明符的工作原理,请参阅格式说明符。
示例 1: 打印两位小数:
// Scala程序
// f插值器
// 创建对象
object GFG
{
// 主方法
def main(args:Array[String])
{
val x = 20.6
// 没有f插值器
val str1 = "Value of x is x%.2f"
// 使用f插值器
val str2 = f"Value of x isx%.2f"
println("str1: " + str1)
println("str2: " + str2)
}
}
输出:
str1: Value of x is $x%.2f
str2: Value of x is 20.60
示例 2: 设置整数宽度:
// Scala程序
// f插值器
// 创建对象
object GFG
{
// 主方法
def main(args:Array[String])
{
val x = 11
// 没有f插值器
val str1 = "Value of x is x%04d"
// 使用f插值器
val str2 = f"Value of x isx%04d"
println(str1)
println(str2)
}
}
输出:
Value of x is $x%04d
Value of x is 0011
如果我们尝试在使用%d格式说明符进行格式化的时候传递一个Double值,编译器会报错。对于%f说明符,传递Int是可以接受的。
- raw Interpolator: 字符串字面值应以“raw”开头。这个插值器将转义序列视为字符串中的任何其他字符。
示例 : 打印转义序列:
/ / Scala程序
// raw插值器
// 创建对象
object GFG
{
// 主方法
def main(args:Array[String])
{
val str = raw"\n is a new line"
println(str)
}
}
输出:
n is a new line
阅读更多:Scala 教程