扫描仪在两个系统上的行为不同



我编写了一个程序,该程序读了一个单词,并计算每个单词出现的次数。我正在使用扫描仪进行此操作。当我尝试在不同的机器上运行代码时,就会出现问题。在我的Windows 10计算机上,代码可以完美地通过整个文件,但是当代码在我的MacBook上运行时,扫描仪会停止阅读文件部分。我包括了通过以下文件循环的代码的一部分。

Scanner s = new Scanner(theFile);
List<String> words = new LinkedList<>();
while (s.hasNextLine())
{
    String word s.next().replaceAll("\p{Punct}", "");
    words.add(word.toLowerCase());
}

正如我所说的,在Windows上,整个文件已读取,但是在Mac上,只有很小的部分读取。另外,我正在使用SVN存储库,并确保代码以及正在读取的文件是相同的。

我最终从使用扫描仪切换到使用BufferedReader。我没有阅读每个单词,而是一次阅读一行,然后将阵容分为单个单词。仍然不确定为什么扫描仪无法在两个平台上正确工作,但是这种方法给了我所需的结果。

最新更新