String interpolation(字符串插值)
用途:处理字符串
类型:
s:字符串插值
f:插值并格式化输出
raw:对字符串不做任何变化输出
scala在2.10.0之后引入String Interpolation,允许用户在字符串中嵌入变量的引用
字符串插值器
在任何字符串前加s就可以在串中使用变量了
val name = "lee" println(s"Hello,$name")
字符串插值也可以放表达式
println(s"1+1=${1+1}")
f插值器
插值f可以对字符串进行格式化类似printf
val height = 1.9d val name = "lee" println(f"$name%s is $height%4.2f meters tall")
raw插值器
除了对字面值的字符不做编码外,raw插值器与s插值器在功能上是相同的.
scala>s"a\nb" res0:String = a b scala>raw"a\nb" res1:String = a\nb
文件以及正则表达式
读取行
导入scala.io.Source,读取source的方法读取文件信息
import scala.io.Source object FileDemo extends App{ val source = Source.fromFile("C:/lee/lee.txt") //返回一个迭代器 val lines = source.getLines() for(i<-lines) println(i) //内容也可以放到数组中 //val arr = source.getlines().toArray //for(elem <- arr) //println(elem) //文件内容直接转换成为一个字符串 //val contents = source.mkString //println(contents) }
读取字符串
按字符读取文件中的内容
import scala.io.Source object FileDemo extends App{ val source = Source.fromFile("C:/lee/lee.txt") for(c<-source) println(c) }
读取单词
把文件内容转换成一个单词的数组
import scala.io.Source object FileDemo extends App{ val source = Source.fromFile("C:/lee/lee.txt") val contents = source.mkString.split(" ") for(word <- contents) println(word) }
读取网络文件
Source可以直接读取来自URL等非文件源的内容
import scala.io.Source object FileDemo extends App{ val source = Source.fromURL("http://www.baidu.com") val lines = source.getLines() for(i<-lines) println(i) }
正则表达式
scala通过scala.util.matching包中的Regex类来支持正则表达式
scala.util.mat