java字符串标记器在读取文件时不将第二行上的字符串注册为标记,尽管使用了。nextToken()
我正在读一个文件。所讨论的文件有两个字符串,一个在自己的行上,如下所示:
COMETQ
HVNGAT
我试图将每个字符串分配给它自己的字符串变量。然而,当我运行我的代码(如下所示)时,我得到了第二个NoTouchElementException。nextToken()
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培训页面的问题。我只是想寻求帮助来调试文件读取,而不是解决问题
# 1 楼答案
你只说了一句话:
您必须首先读取文件中的所有行,然后将结果字符串传递给构造函数
注意:在这种情况下,您甚至不必使用
StringTokenizer
。只需使用BufferedReader
# 2 楼答案
StringTokenizer应在文本包含分隔符且要拆分时使用。也可以使用split()方法
语法:
例如:
但是在您的文件中,字符串中没有这样的分隔符。所以,
StringTokenizer
在这里没有用我用这个测试过:
输出:
希望这对你有帮助:)