字符串插值法定义具有一个或多个占位符的字符串文字,这些占位符在最终编译结果时将用变量或表达式替换。
Scala编程语言支持字符串插值和多种方法来轻松处理字符串文字。
在Scala中使用字符串插值的概念来产生正确且无错误的结果时,要牢记一些规则。规则是:
定义的字符串必须以/ f / raw关键字开头。
所有将用作占位符的变量和表达式都应带有前缀$。
要将表达式放在占位符中,应将表达式括在大括号{}中。
语法:
val str = s"Hello welcome to $name"
在“S”关键字在这,我们要添加的占位符使用变量或表达式的字符串的开头添加。
语法:
val str = s"string ${expression}"
示例
object MyClass { def main(args: Array[String]) { var bikename = "KTM Duke 390" var topspeed = 185 var str = s"I have $bikename and it has a top speed of $topspeed " println(str) } }
输出结果
I have KTM Duke 390 and it has a top speed of 185
在“F”关键字在这是我们希望添加变量和表达式的字符串的开头添加。
语法:
val str = f"string ${expression}"
示例
object MyClass { def main(args: Array[String]) { var bikename = "ThunderBird 350" var topspeed = 137 var str = f"I have $bikename and it has a top speed of $topspeed " println(str) } }
输出结果
I have ThunderBird 350 and it has a top speed of 137
在“原始”的关键字在,这是我们希望添加变量和表达式的字符串的开头添加。
语法:
val str = raw"string ${expression}"
示例
object MyClass { def main(args: Array[String]) { var bikename = "Ninja 300" var topspeed = 150 var str = raw"I have $bikename and it has a top speed of $topspeed " println(str) } }
输出结果
I have Ninja 300 and it has a top speed of 150
在Scala编程语言中,表达式也可以代替占位符。
语法:
val str = s"string $(expression)"
示例
object MyClass { def main(args: Array[String]) { var a = 34 var b = 75 var str = s"The product of $a and $b is ${a*b}" println(str) } }
输出结果
The product of 34 and 75 is 2550
在Scala编程语言中,您还可以调用方法并在占位符位置使用其值。
语法:
val str = s"string$(functioncall)"
示例
object MyClass { def add(x:Int, y:Int) = x + y; def main(args: Array[String]) { var x = 534; var y = 21; print(s"sum of $x + $y = ${add(x,y)}"); } }
输出结果
sum of 534 + 21 = 555