首页 > 解决方案 > 字符串比较导致不正确的结果

问题描述

我有一个写在文件中的路径 URL。我使用 Scanner 类记录该 URL 并将其输出到字符串变量“s”。然后,我使用 .equals() 方法将其与“gameDataFile”文件对象中的路径 URL 进行比较。结果是错误的,尽管它们与我的控制台中记录的字符串相同。这里发生了什么?

文件中的路径 URL:

src\gameData\character_data.csv

代码片段:

String s = in.next();                       // in is a java.util.Scanner object
System.out.println(gameDataFile.getPath()); // gameDataFile is a java.io.File object
System.out.println(s);
System.out.println(s.equals(gameDataFile.getPath()));

控制台输出:

src\gameData\character_data.csv
src\gameData\character_data.csv
false

编辑:根据@MTilsted 的要求,以下代码片段

String s = in.next();
System.out.println("'" + gameDataFile.getPath() + "'");
System.out.println("'" + s + "'");
System.out.println(s.equals(gameDataFile.getPath()));

控制台输出结果:

'src\gameData\character_data.csv'
'
false

它似乎已将 URL 替换为一个单引号

标签: java

解决方案


试试这个:

String s = in.next();                       // in is a java.util.Scanner object
System.out.println("'" + gameDataFile.getPath() + "'"); // gameDataFile is a java.io.File object
System.out.println("'" + s + "'");
System.out.println(s.equals(gameDataFile.getPath()));

推荐阅读