package com.bigdata
object StringO {
def main(args: Array[String]): Unit = {
val s1 = "Hello"
val s2 = "World"
//拼接、合并字符串
println(s1 + " " + s2)
println(s1.concat(" "+s2))
//访问、截取字符串
println(s1(0))
val s3 = s1.substring(0,2)
println(s3)
//分隔字符串
val s4 = s1.split("ll")
println(s4)
//字符串格式化
val name = "xiaoming"
val age = 20
val s5 = "%s is %d years old".format(name,age)
println(s5)
//处理字符串中的字符(map,filter,flatmap,for,foreach)
val upper = s1.map(upper=>upper.toUpper)
val upper1 = s1.map(i=>i.toUpper)
val upper2 = s1.map(_.toUpper)
println(upper,upper1,upper2)
val filter = s1.filter(i=>i !='o')
println(filter)
s1.foreach(println)
for (i <- s1 if i != 'l') {
println("i = "+i)
}
//字符串中的查找模式
// 在一个string上调用.r方法可以创建一个Regex对象,之后在查找是否含有一个匹配时就可以用findFirstIn,此方法返回option类型,当需要查找是否完全匹配时可以用findAllIn,此方法返回一个迭代器
val pattern = "[0-9]+".r
val address = "101 main street 123"
val match1 = pattern.findFirstIn(address)
val match2 = pattern.findAllIn(address)
println(match1,match2)
//字符串中的替换模式(replaceAll replaceAllIn replaceFirst replaceFirstIn)
val address1 = address.replaceAll("[0-9]","x")
println(address1)
//抽取String中模式匹配的部分
val pattern1 = "([0-9]+) ([A-Za-z]+)".r
val pattern1(count,fruit) = "100 bananas"
println(count,fruit)
}
}