java - 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”的末尾,但它仍然不起作用。
解决方案
在得知 Windows 会在我不做任何事情的情况下更改换行符后,我能够在 PDFBox 中找到 setLineSeparator() 方法(我用它来阅读 PDF)并将换行符设置为“\n”所以它能够像以前一样工作。
推荐阅读
- r - 在R中组合所有可能的数据框行
- apache - 设置 apache 服务器
- docker - dockerfile 变量值未传递给容器
- android - Firebase 屏幕名称显示未设置
- java - 卡夫卡 - 经纪人:组协调员不可用
- c# - 以提升的权限运行时如何与 Outlook 互操作?
- python - 根据总和对具有多个值的字典进行排序
- angular - Angular v6 mat-table 不在视图中显示信息,但在控制台中显示
- ipython - 将图像加载到数组python中
- android - runBlocking(UI) 死锁 - (Kotlin, Coroutine)