Scala中的字符串插值

Scala字符串插值

字符串插值法定义具有一个或多个占位符的字符串文字,这些占位符在最终编译结果时将用变量或表达式替换。

Scala编程语言支持字符串插值和多种方法来轻松处理字符串文字。

在Scala中使用字符串插值概念来产生正确且无错误的结果时,要牢记一些规则。规则是:

  • 定义的字符串必须以/ f / raw关键字开头。

  • 所有将用作占位符的变量和表达式都应带有前缀$。

  • 要将表达式放在占位符中,应将表达式括在大括号{}中。

语法:

    val str = s"Hello welcome to $name"

1)使用“ s”关键字的字符串插值

“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

2)使用“ f”关键字的字符串插值

“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

3)使用“ raw”关键字的字符串插值

“原始”的关键字在,这是我们希望添加变量和表达式的字符串的开头添加。

语法:

    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