java - 嵌套循环的第一个 while 循环只迭代一次

标签 java string while-loop iteration nested-loops

在这里比较两个 .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/

相关文章:

java - MySql 备份不工作

.net 字符串类替代方案

r - 使用 Sys.time() 对 R 代码进行计时

sql - 如何在 SQLite 查询中转义字符串中的双引号?

java - Java中的无限while循环——Newton-Raphson方法

javascript - 为什么负 while 循环如此之快?

java - 元素类型 "Resource"必须后跟属性规范 ">"或 "/>"

java - While 循环无法正常工作,无限循环?

java - 在方法类型参数列表或方法参数中定义有界类型参数

php - PHP语法错误由引号引起