扫描仪在两个系统上表现不同

时间:2019-02-22 18:25:22

标签: java java.util.scanner

我编写了一个程序,可以逐个单词地读取文件,并计算每个单词出现的次数。我正在使用扫描仪执行此操作。当我尝试在其他计算机上运行代码时,就会出现问题。在我的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存储库,并确保代码和读取的文件相同。

1 个答案:

答案 0 :(得分:0)

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