我有2个文件, 文件1:
1
2
2
2
1
1
2
1
...
和file2:
1=1
2=2
0!=2
2=2
...
我如何逐行比较这两个文件?我想计算具有相同值的行。例如,在上面两个文件中:
def main(args: Array[String]): Unit = {
val lines = fromFile("data/file1.txt").getLines
val lines2 = fromFile("data/file2.txt").getLines
var l = 0
var cnt = 0
for (line <- lines) {
for (line2<-lines2){
if (line == line2){
cnt += 1
}
}
println(cnt)
}
}
我试过了:
using System.Collections;
但我没有显示我最喜欢的输出。
答案 0 :(得分:4)
您正在嵌套迭代,即您将第一个文件的第1行与第二个文件的所有行进行比较,然后将第一个文件的第2行与第二个文件的所有行进行比较...甚至没有因为getLines
给你一个迭代器,它将在第一个循环后耗尽。
最简单的是
(lines1 zip lines2).count { case (a, b) => a == b }
答案 1 :(得分:0)
您可以使用转换为数组并进行比较
lines1.toArray.sameElements(lines2.toArray)
它将返回布尔值。