有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在两个文本文件中找到相似的行,而不考虑它们出现的行号

我试图打开两个文本文件,并在其中找到类似的行。 我的代码正确读取了两个文本文件中的所有行。 我使用嵌套的for循环将第一个文本文件的line1与第二个文本文件的所有行进行比较,依此类推。 但是,它只检测具有相同行号的相似行, (例如txt1的第1行是cc cc cc,而txt2的第1行是cc cc cc,然后它会正确地找到并打印它), 但它不会在这些文件的不同行号上检测到相同的行

import java.io.*;
import java.util.*;

public class FeatureSelection500 {

    public static void main(String[] args) throws FileNotFoundException, IOException {
        // TODO code application logic here

        File f1 = new File("E://implementation1/practise/ComUpdatusPS.exe.hex-04-ngrams-Freq.txt");
        File f2 = new File("E://implementation1/practise/top-300features.txt");

        Scanner scan1 = new Scanner(f1);

        Scanner scan2 = new Scanner(f2);

        int i = 1;
        List<String> txtFileOne = new ArrayList<String>();

        List<String> txtFileTwo = new ArrayList<String>();

        while (scan1.hasNext()) {
            txtFileOne.add(scan1.nextLine());
        }

        while (scan2.hasNext())

        {

            txtFileTwo.add(scan2.nextLine());
        }
     /*
    for(String ot : txtFileTwo )
    {
    for (String outPut : txtFileOne)

    {
       // if (txtFileTwo.contains(outPut))
        if(outPut.equals(ot))
        {

           System.out.print(i + " "); 

           System.out.println(outPut);
           i++;


        }

    }
    }
*/

        for (int j = 0; j < txtFileTwo.size(); j++) {

            String fsl = txtFileTwo.get(j);
            //  System.out.println(fileContentSingleLine);

            for (int z = 0; z < 600; z++)                                 // z < txtFileOne.size()
            {
                String s = txtFileOne.get(z);
                //  System.out.println(fsl+"\t \t"+ s);
                if (fsl.equals(s)) {
                    System.out.println(fsl + "\t \t" + s);
                    // my line

                    // System.out.println(fsl);
                } else {
                    continue;
                }
            }
        }
    }
}

共 (0) 个答案