Java 在查找下面提到的导致程序无法运行的错误时遇到问题
我在运行程序时遇到了一些问题。无论何时,我尝试得到java.util.InputMismatchException。 在搜索之后,我注意到它是在我试图获取数据时出现的,但下一个数据不是那种格式(用初学者的话来说)。 我已多次尝试查找导致错误的原因,但似乎找不到:/ 对于那些认为这是草率的人来说,因为没有使用数组。我不允许在这个特殊任务中使用它们Java 在查找下面提到的导致程序无法运行的错误时遇到问题,java,Java,我在运行程序时遇到了一些问题。无论何时,我尝试得到java.util.InputMismatchException。 在搜索之后,我注意到它是在我试图获取数据时出现的,但下一个数据不是那种格式(用初学者的话来说)。 我已多次尝试查找导致错误的原因,但似乎找不到:/ 对于那些认为这是草率的人来说,因为没有使用数组。我不允许在这个特殊任务中使用它们 import java.util.Scanner; import java.io.*; public class Huang_Grading {
import java.util.Scanner;
import java.io.*;
public class Huang_Grading
{
//Global variables
private static int holdMinStudentID;
private static int holdMinEnhStudentID;
private static int holdMaxStudentID;
private static int holdMaxEnhStudentID;
private static int holdModeStudentID;
private static int holdModeEnhStudentID;
/**Main method to pull data from*/
public static void main(String[] args) throws IOException
{
//Set up input file
File inputFile = new File("gradeInput.txt");
validateFile(inputFile);
validateData(inputFile);
printData();
}
/**Read in file location, give error message if file does not exist
Also, save valid numbers to an output file*/
/**Compute and return mean of all grades*/
public static double mean(Boolean gradeType) throws IOException
{
Scanner fileInput = new Scanner("outputs.txt");
//Declare variables
double finalMean = 000.00;
double earnedGrade;
int enhancedGrade;
double totalEnhancedGrade = 0;
double totalEarnedGrade = 0;
int studentID;
int lines = 0;
//Mean grade
while(fileInput.hasNext())
{
studentID = fileInput.nextInt();
enhancedGrade = fileInput.nextInt();
earnedGrade = fileInput.nextDouble();
if(gradeType == false)
{
totalEarnedGrade = totalEarnedGrade + earnedGrade;
}
if(gradeType == true)
{
totalEarnedGrade = totalEarnedGrade + earnedGrade;
totalEnhancedGrade = totalEnhancedGrade + enhancedGrade;
}
lines++;
if(gradeType == false)
{
finalMean = totalEarnedGrade/lines;
}
if(gradeType == true)
{
finalMean = (totalEnhancedGrade + totalEarnedGrade)/lines;
}
}
fileInput.close();
return finalMean;
}
/**Compute and return minimum/maximum of all grades*/
/**Print out results*/
public static void printData() throws IOException
{
//Declare variables
Boolean earned = false;
Boolean enhanced = true;
double meanEarnedGrade = mean(earned);
double meanEnhancedGrade = mean(enhanced);
System.out.printf("%25s%7.2f", "Mean Earned Grade:\n", meanEarnedGrade);
System.out.printf("%25s%7.2f", "Mean Enhanced Grade:\n", meanEnhancedGrade);
}
}
答案是
改变
Scanner fileInput = new Scanner("outputs.txt");
到
@恐怖战警:这意味着它会跳过一部分吗?我在班上还没有学过接球。@ScaryWombat是你要求我在主帖子中更新的内容吗?@ScaryWombat我更新了主帖子~几乎是一行行数字。我的第一个是00000-99999的整数,第二个是0-5的整数,最后一个是双精度000.00-100。00@ScaryWombat嗯..我最后遇到了另一个错误,那就是NoTouchElementException:找不到行。所以我假设dat不是错误?@ScaryWombat仍然是同一行。我尝试了各种更改,但它一直有问题。
Scanner fileInput = new Scanner(new File ("outputs.txt"));