本文来说一下Scala的字符串操作,在第一次使用Scala字符串的时候,基本都是用字符串相加(+)来实现的,后来发现了Scala字符串还有插值,瞬间感觉自己low了,所以要特别记录一下。
Scala字符串
Scala的String构建在Java的String上,并向Java的String添加了字符串插值等附加功能。
例子
下面的示例说明了使用双引号的字符串常量:
object Main {
def main(args: Array[String]) {
val hello = "Hello"
println(hello);
}
}
字符串插值
字符串插值是一种将字符串中的值与变量组合的机制,Scala中的插值符号是在字符串的第一个双引号之前添加的s前缀,然后可以使用美元符号运算符$引用变量。以下代码说明了字符串插值的用法:
object Main {
def main(args: Array[String]) {
val bookTitle = "Scala" // creating a String
// String interpolation
println(s"Book Title is ${ bookTitle}" );
}
}
这里再秀一段我实际场景中的应用:
val sparkSession = SparkSessionUtils.getOrCreateSparkSession(CasesConstant.APP_NAME, "yarn-cluster")
import sparkSession.implicits._
sparkSession.sql(
s"SELECT *, DATE_SUB('${data_case_date}', date_gap) AS data_date FROM case_data_update_intime_temp"
).createOrReplaceTempView("case_data_update_intime_temp")