我使用扫描仪的文件阅读器出现了一些问题,此时我有点不知所措。尝试使用扫描仪读取文件,但 atm 我不断收到一条java.util.InputMismatchException
消息,提示我scanner.next
将错误的文件放入错误的数组中?我不知道为什么会发生这种情况,如果有人可以在我的代码中指出我搞砸的地方,我将不胜感激。
注意:除非它是相关的,否则忽略无用的变量和过长的数组。我正准备把它变成一个类,但一些变量还没有使用。
public static void main(String[] args) throws IOException
{
int playersTotal = 0;
int entries = 0;
int namesIndex = 0;
int attackIndex = 0;
int blockIndex = 0;
String[] playersName = new String[60];
double[] attackScores = new double[60];
double[] blockScores = new double[60];
String file = "roster1.txt";
Scanner scanner = new Scanner(new File(file));
scanner.useDelimiter(" ");
while(scanner.hasNextLine())
{
playersName[namesIndex] = scanner.next();
System.out.println(playersName[namesIndex]);
namesIndex ++;
playersName[namesIndex] = scanner.next();
System.out.println(playersName[namesIndex]);
namesIndex ++;
entries ++;
attackScores[attackIndex] = scanner.nextDouble();
System.out.println(attackScores[attackIndex]);
attackIndex ++;
entries ++;
//problem occurs here:
blockScores[blockIndex] = scanner.nextDouble();
System.out.println(blockScores[blockIndex]);
blockIndex ++;
entries ++;
playersTotal ++;
}
}
这应该从每行都包含字符串和双精度的列表中取出每个用空格分隔的条目,并将其保存到正确的数组中。然而,它只在第一行达到第一个双倍。尝试读取下一个 double 会提示线程中的异常。
三国纷争
相关分类