如果我有这个scala输出代码:
(1,ab)
(2,fd)
(4, df)
(a,1)
(b,3)
(c,4)
(d,6)
我想删除元组中第一个插槽中有数字的所有元组,例如前三个:(1,ab) (2,fd) (4, df)
。
由于某些原因,我在这里的代码没有正确过滤那些元组:
val temp = t.countByValue().filter(_._1 != Int).print()
countByValue()
函数返回(value (in my case a string like (a,b,c,), count of the times the string occurs)
的元组。
答案 0 :(得分:0)
我认为这可能会解决您的问题
t.countByValue().filter(tupleOfCount=>Try(tupleOfCount._1.toInt).toOption.isEmpty).print()
使用isInstanceOf应该是最后的手段,因为@sergey说,所以这段代码必须解决问题,否则模式匹配也是一个不错的选择。
答案 1 :(得分:-1)
def main(args: Array[String]): Unit = {
var newlist = List((1 -> "a"), ("b") -> 2, ("c" -> 3))
newlist.foreach(tuple => if (tuple._1.isInstanceOf[Int]) {
println(tuple._1 + "-" + tuple._2)
})
}
希望它可以提供帮助。 BTW(1,ab)如果你的ab是一个字符串你需要“ab”。