Scala-字符串操作

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)

  }

}

 

posted @ 2019-02-14 14:38  时光快照  阅读(6078)  评论(0编辑  收藏  举报