首页 > 解决方案 > String.equals() 方法在 Windows 中不匹配

问题描述

我在 macOS 上使用 Eclipse 制作了一个 Java 程序,它运行良好。当我将它切换到 Windows 上的 Eclipse 时,我开始收到错误消息。

失败的条件是在 mac 上运行良好的 if 语句。在 Windows 上,我尝试调试问题。scanner.next()如果我把它打印出来,就会给出正确的输出。如果我比较它但是它不起作用。我还尝试将输出复制并粘贴到我的条件中,但它仍然不起作用。我尝试包括是否有我看不到的 \n 并且这也不起作用。下面是它的代码。

Scanner scanner = new Scanner("text from file with line 1 being 'TRAILING PERFORMANCE'");
toggleDelimiter(scanner); // helper method that switches the scanner to read by lines or tokens

if(!scanner.next().equals("TRAILING PERFORMANCE")) {
// Throw error here if the first line is not TRAILING PERFORMANCE
}

条件应该返回 false 并且不会为我正在使用的文件引发错误,因为我知道它有效。如前所述,完全相同的代码在带有 macOS 的 Eclipse 上运行良好。

编辑:我现在还尝试将 \n、\n\r 和 System.lineSeparator() 附加到“TRAILING PERFORMACE”的末尾,但它仍然不起作用。

标签: javawindowsmacosjava.util.scannerequals

解决方案


在得知 Windows 会在我不做任何事情的情况下更改换行符后,我能够在 PDFBox 中找到 setLineSeparator() 方法(我用它来阅读 PDF)并将换行符设置为“\n”所以它能够像以前一样工作。


推荐阅读