Scala | 字符串插值

Scala | 字符串插值

字符串插值 指的是将给定字符串中已定义变量或表达式替换为相应的值。字符串插值提供了一种处理字符串文本的简单方法。要应用Scala的此功能,我们必须遵循几个规则:

  1. 字符串必须以起始字符 s / f / raw 定义。
  2. 在字符串中的变量必须以‘$’为前缀。
  3. 表达式必须用花括号({, })括起来,并添加‘$’作为前缀。

语法:

// x 和 y 被定义
val str = s"Sum of x andy is ${x+y}"

** 字符串插值器类型 **

  1. 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
  1. 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是可以接受的。

  1. 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 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程