在这里比较两个 .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);
}
}
}
最佳答案
您必须在外部 while
循环中创建第二个文件的 Scanner
:
Scanner scanner = new Scanner(firstFile);
int lineNum = 0;
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
lineNum++;
Scanner scanner1 =new Scanner(secondFile);
while (scanner1.hasNextLine()) {
String line1 = scanner1.nextLine();
if(line.contains(line1)) {
System.out.println("Ignore/Review line number: "+lineNum);
}
}
}
否则 scanner1.hasNextLine()
在外部 while
循环的第二次迭代中返回 false
,因为整个第二个文件已被读取在外循环的第一次迭代中。
关于java - 嵌套循环的第一个 while 循环只迭代一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47573754/