尝试运行我的代码时,我收到以下错误输出。
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at Olympics.main(Olympics.java:61)
Java Result: 1
该项目包含一个名为olympics.txt的文本文件,是一个奥运会运动员与国家等统计数据的文件。我有文件中的行数,lineNum,并且我使用这个for循环添加每一个信息到相应的数组中。
for(int j = 0; j <= lineNum-1; j++)
{
String line = fileScan.nextLine();
Scanner lineScan = new Scanner(line);
lineScan.useDelimiter("\t");
name[j] = lineScan.next();
age[j] = lineScan.nextInt();
country[j] = lineScan.next();
year[j] = lineScan.next();
String ceremony = lineScan.next();
sport[j] = lineScan.next();
int gold = lineScan.nextInt();
int silver = lineScan.nextInt();
int bronze = lineScan.nextInt();
total[j] = lineScan.nextInt();
}
第61行是age[j] = lineScan.nextInt();
我评论了年龄线,看看它是否有效,但它仍然没有用。任何帮助表示赞赏,如果您需要更多代码,请告诉我们。
答案 0 :(得分:1)
从doc开始,useDelimiter(String)
采用正则表达式,而不是您想要剪切的示例。
要在标签处拆分,您需要使用useDelimiter("\\t")
这就是next()
引发异常的原因,它只是无法使用您设置的分隔符拆分该行。