这个问题在这里已经有答案了:
如何比较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。
3条答案
按热度按时间knsnq2tg1#
代码中有两个错误。
不要使用双等于来比较字符串。你需要使用
equals()
函数从字符串执行此操作你想测试字符串
firstLaunch=
不是说你的线等于firstLaunch=
. 为此,您可以使用line.contains("firstLaunch=")
fjaof16o2#
你应该使用
equals()
比较字符串。或者对你来说,contains()
因为这条线可能有其他的东西,而不仅仅是你想找到的6bc51xsx3#
operator==检查两个对象是否指向同一内存位置,而.equals()的计算结果是比较对象中的值。
这里有一篇文章提供更多信息