java - 使用 contains 方法查找包含字符串的行

标签 java

我有两个文件:

其中一个是 CSV 文件,其中包含以下内容:

Class
weka.core.Memory
com.google.common.base.Objects
client.network.ForwardingObserver

第二个是一个 txt 文件,其中包含以下内容:

1_tullibee  com.ib.client.ExecutionFilter
107_weka    weka.core.Memory
101_netweaver   com.sap.managementconsole.soap.axis.sapcontrol.HeapInfo
107_weka    weka.classifiers.Evaluation
guava   com.google.common.base.Objects
57_hft-bomberman    client.network.ForwardingObserver
18_jsecurity    org.jsecurity.web.DefaultWebSecurityManager

我想检索 txt 文件中包含 CSV 文件中的类的行。为此:

try (BufferedReader br = new BufferedReader(new FileReader("/home/nasser/Desktop/Link to Software Testing/Experiments/running_scripts/exp_23/run3/CSV/MissingClasses_RW_No_Reduction.csv"))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println("==>> " + line);

        Scanner scanner = new Scanner(new File("/home/nasser/Desktop/Link to Software Testing/Experiments/running_scripts/exp_23/selection (copy).txt"));

        while (scanner.hasNextLine()) {
            String currentLine = scanner.nextLine();

            if(currentLine.contains("**>> " + line)){
                System.out.println(currentLine);
            }else {
                System.out.println("not found");
            }
        }
    }
}

当我运行它时,我发现 CSV 中的所有类都未找到,这不是我期望的情况。我希望打印以下几行:

107_weka    weka.core.Memory
guava   com.google.common.base.Objects
57_hft-bomberman    client.network.ForwardingObserver

如何解决?

最佳答案

如果你不想要not find==>> *输出,只需删除相应的代码行即可

try (BufferedReader br = new BufferedReader(new FileReader("csv.txt"))) {
    String line;
    while ((line = br.readLine()) != null) {
        Scanner scanner = new Scanner(new File("copy.txt"));

        while (scanner.hasNextLine()) {
            String currentLine = scanner.nextLine();

            if (currentLine.contains(line)) {
                System.out.println(currentLine);
            }
        }

        scanner.close();  // added this, could use try-with but that is *advanced*
    }
}

这将生成以下输出,完全按照要求:

107_weka    weka.core.Memory
guava   com.google.common.base.Objects
57_hft-bomberman    client.network.ForwardingObserver

明显使用过的文件位于我的文件夹中...

关于java - 使用 contains 方法查找包含字符串的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57056300/

相关文章:

java - 如何查看 Formatter 类创建的文件的输出

java 提示从 softhsm 加载 pkcs dll

java - 启用 GPS 时启动我的 Android 应用程序强制关闭

Java - DocumentDB未经授权的访问

Java 隐式 try-with-resources

java - 尝试创建 SQLite 数据库时出现 NullPointerException - Android

Java : does regex pattern matcher have a size limit?

java - 单击按钮时没有敲击声 - android

java - Spring Boot 开发者工具自动重启在 IntelliJ 中不起作用

java - 接口(interface)中的选项