字符串插值:直接在过程字符串文字中嵌入变量引用的机制。只在Scala-2.10及更高版本支持。
1、's'字符串插值器
文字's'
允许在处理字符串时直接使用变量。任何在范围中的String变量可以在字符串中使用。
用法1:
在println
语句中将String
变量($name
)附加到普通字符串(Hello
)中:
val name = "TRX"
println(s"Hello, $name") //output: Hello, TRX
用法2:
字符串插入器还可以处理任意表达式。 使用's'
字符串插入器处理具有任意表达式(${1 + 1}
)的字符串(1 + 1
)的以下代码片段。任何表达式都可以嵌入到${}
中。
println(s "1 + 1 = ${1 + 1}") //output: 1 + 1 = 2
2、'f'字符串插值器
文字'f'
插值器允许创建一个格式化的字符串,类似于C语言中的printf
。 在使用'f'
插值器时,所有变量引用都应该是printf
样式格式说明符,如%d
,%i
,%f
等。
我们以一般的字符串为例附加浮点值(height = 1.9d
)和字符串变量(name =“TRX”
)。下面的代码片段实现'f'
插值器。这里$name%s
打印String变量TRX和$height%2.2f
打印浮点值1.90
。
val height = 1.9d
val name = "TRX"
println(f"$name%s is $height%2.2f meters tall") //TRX is 1.90 meters tall
3、'raw'字符串插值器
'raw'
内插器类似于's'
插值器,但是它不执行字符串内的文字转义。
's'
的插值器使用,程序代码如下:
println(s"Result = \n a \n b")
// 输出结果 -
Result =
a
b
'raw'
的插值器使用,程序代码如下 -
println(raw"Result = \n a \n b")
// 输出结果 -
Result = \n a \n b