首页 > 解决方案 > 尽管使用了 .nextToken(),但字符串标记器在读取文件时未将第二行上的字符串注册为标记

问题描述

我正在尝试读取文件。有问题的文件有两个字符串,一个在自己的行上,如下所示:

COMETQ
HVNGAT

我正在尝试将每个字符串分配给它自己的字符串变量。但是,当我运行我的代码(如下)时,我得到第二个 .nextToken() 的 NoSuchElementException。

    BufferedReader f = new BufferedReader(new FileReader("ride.in"));
    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("ride.out")));

    StringTokenizer st = new StringTokenizer(f.readLine());

    String comet = st.nextToken();
    String group = st.nextToken();

有人可以帮我找出问题所在吗?谢谢!

注意:这是一个 USACO 培训页面问题。我只是想寻求帮助来调试文件读取,而不是解决问题。

标签: javastringtokenizer

解决方案


你只给了它一行:

new StringTokenizer(f.readLine());

您必须先读取文件中的所有行,然后将结果字符串传递给构造函数。

注意:在这种情况下,您甚至不必使用StringTokenizer. 只需使用BufferedReader


推荐阅读