输入不匹配异常错误

时间:2014-02-06 04:20:13

标签: java arrays compiler-errors

我收到输入不匹配错误,但我不确定原因。它正在一台不同的计算机上工作,但它似乎不能在我的笔记本电脑上工作。首先我认为它可能是我的txt文件,但这不是原因。

import java.io.*;
import java.util.*;
public class FindGrade {
public static final int NUM_SCORE_TYPES = 5;   

public static void main(String[] args) {
    Scanner scan = null;
    int[] quizArray = null;    
    int[] labArray = null;     
    int[] attendance = null; 
    int[] midterms = null; 
    int quizgrade =0;
    int labgrade=0;
    int attendance_1=0;
    int midterms_1 =0;
    String name;


    try {
        scan = new Scanner(new File("input.txt")); 
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return;
    }

    // each iteration is for single exam type (ie: Quizzes is the 1st one)
    for (int i = 0; i < NUM_SCORE_TYPES; i++) {

        name = scan.next(); 
        int numScores = scan.nextInt();
        int maxGrade = scan.nextInt();

        if (name.equals("Quizzes")) {
            quizArray = new int[numScores];
            readScores(quizArray, numScores, scan);


        }

        else if (name.equals("Labs")) {
            labArray = new int[numScores];
            readScores(labArray, numScores, scan);

        }
        else if (name.equals("Lab_attendance")) {
            attendance = new int[numScores];
            readScores(attendance, numScores, scan);

        }
        else if (name.equals("Midterms")) {
            midterms = new int[numScores];
            readScores(midterms, numScores, scan);

        }

    }

}


public static void readScores(int[] scoreArray, int numScores, Scanner scan) {
    for (int i = 0; i < numScores; i++) { 
        scoreArray[i] = scan.nextInt();
    }
}

public static void average(double [] scoreArray, int numScores){
    double sum=0;
    for(int i=0; i< scoreArray.length; i++){
        sum += scoreArray[i];
    }
    double average = sum/numScores;

    System.out.println(sum + " " + average);



}

}

输出:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:840)
    at java.util.Scanner.next(Scanner.java:1461)
    at java.util.Scanner.nextInt(Scanner.java:2091)
    at java.util.Scanner.nextInt(Scanner.java:2050)
    at FindGrade.main(FindGrade.java:33)

输入文件:

Quizzes 8 10
5 8 9 10 4 0 10 7
Labs 6  100
95  90  100  87  63  92
Lab_attendance  16  1
1  1  1  0  1  1  1  1  0  1  1  1  1  0  1  1
Midterms  2  100
87  94
Final  0  100   

1 个答案:

答案 0 :(得分:0)

您的代码与您发布的数据一起正常运行。 如果变量“name”将被赋予与您期望的5个名称不同的值,它将给出此错误,例如“Quizze”而不是“Quizzes”。 在这种情况下,您的代码逻辑会被破坏,您将遇到此错误。这是一个可能的根本原因。