filter在第一个之后不会停止false但继续遍历剩余的集合.这些附加字符稍后出现在同一位置的两个字符串中.你想要的而不是过滤器是takeWhile:
filter
false
takeWhile
val xy = (x zip y).takeWhile{ case (a,b) => (a==b) }.map{case (a,b) => a}.mkString