Scala类型不匹配的基础类型

时间:2015-05-21 11:58:04

标签: scala

我正在编写将Set[Tuple2[String, String]]转换为String的方法,反之亦然 我将字符串值保存为v1,v2#v3,v4#v5,v6
为了填充Set我将字符串拆分为','并为了提取值,我尝试将每个值拆分为'#',但我收到< / p>

  

type mismatch:found:x.type(底层类型为Array [String]

我尝试使用的代码是

val x = overwriters.split("#")
for(tuple <- x) {
  tuple.split(",")
}

返回的split类型是一个String数组,所以我不清楚为什么我不能拆分返回数组的每个成员

2 个答案:

答案 0 :(得分:2)

overwrites.split("#").map(_.split(",")).map(x=> (x(0),x(1))).toSet

这将以更加惯用的方式实现。

答案 1 :(得分:2)

tuple.split(",")返回两个元素的数组。您需要将其转换为元组。

val overwriters ="v1,v2#v3,v4#v5,v6"              
val x = overwriters.split("#").toSet
for(tuple <- x) yield {
  val t = tuple.split(",")
  (t(0),t(1))
}