java—在文件中查找包含文本的行

r55awzrz  于 2021-07-06  发布在  Java
关注(0)|答案(3)|浏览(264)

这个问题在这里已经有答案了

如何比较java中的字符串(23个答案)
5个月前关门了。
我想在options.bldata中找出是否编写了firstlaunch=,为此我编写了以下代码:

File file = new File("options.bldata");
    Scanner scanner = new Scanner(file);
    while (scanner.hasNextLine()) {

        String line = scanner.nextLine();
        if (line == "firstLaunch=") {

            System.out.println("123");

        }

    }

当它找到一行firstlaunch=时,它应该打印123,但我不知道为什么即使firstlaunch=在文件中也不打印123。

knsnq2tg

knsnq2tg1#

代码中有两个错误。
不要使用双等于来比较字符串。你需要使用 equals() 函数从字符串执行此操作
你想测试字符串 firstLaunch= 不是说你的线等于 firstLaunch= . 为此,您可以使用 line.contains("firstLaunch=")

fjaof16o

fjaof16o2#

你应该使用 equals() 比较字符串。或者对你来说, contains() 因为这条线可能有其他的东西,而不仅仅是你想找到的

6bc51xsx

6bc51xsx3#

operator==检查两个对象是否指向同一内存位置,而.equals()的计算结果是比较对象中的值。

while (scanner.hasNextLine()) { 
        String line = scanner.nextLine();
        if (line.equals("firstLaunch=")) {   
            System.out.println("123");   
        }   
    }

这里有一篇文章提供更多信息

相关问题