【发布时间】:2018-05-14 09:35:53
【问题描述】:
在这里比较两个 .txt 文件,如果第二个文件中的任何字符串在第一个文件中匹配或重复,则结果是第一个文件的行号。
在代码中,第一个 while 循环只迭代一次。
Scanner scanner = new Scanner(firstFile);
Scanner scanner1 =new Scanner(secondFile);
int lineNum = 0;
while (scanner.hasNextLine())
{
String line = scanner.nextLine();
lineNum++;
while (scanner1.hasNextLine())
{
String line1 = scanner1.nextLine();
if(line.contains(line1))
{
System.out.println("Ignore/Review line number: "+lineNum);
}
}
}
【问题讨论】:
-
我会使用
BufferedReader甚至LineNumberReader而不是Scanner来读取行。实际上,根据文件大小,我会考虑读取至少一个完整文件并将其行存储在 List 中,以避免必须为另一个文件的每一行读取它... -
保存列表中的第二个文件似乎是一个不错的选择。我会试试的,谢谢。
标签: java string while-loop iteration nested-loops