scala中zip、case你不知道的用法

zip的用法


  def main(args: Array[String]): Unit = {
    /*val buf = new StringBuilder
    // buf += "a"   //添加單個字符用 +=  多個字符用 ++=
    buf ++= "11_12,22_23,33_34,11_13,33_35,"
    buf ++= "12_11,11_134"
    println(buf.tail)
    val a = buf.toString().split(",", -1)
    // a.foreach(println)
    println("====================")
    val forData = for (aa <- a) yield {
      if (!" ".equals(aa) && !aa.equals(null)) {
        val bb = aa.split("_")
        AA(bb(0), bb(1))
      }
    }
    val result = forData.zip(forData.tail)
    for (a <- result) {
      println(a)
    }
  } 
 

case 的用法


    val counts = Array("900,google.com",
      "60,mail.yahoo.com",
      "10,mobile.sports.yahoo.com",
      "40,sports.yahoo.com",
      "10,stackoverflow.com",
      "2,en.wikipedia.org",
      "1,es.wikipedia.org",
      "1,mobile.sports")

    val countsMap = counts.map(_.split(",")).map {
      // line => (line(0),line(1)) //跟下面case是一樣的
      case Array(s1, s2) => (s1, s2)
    }
    
    val comCounts = countsMap.map {
      case (x, y) if y.endsWith(".com") => x.toInt
      case _ => 0
    } .reduceLeft(_ + _)

    println(comCounts + " +comCounts")

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章