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")