JAVA.UTIL.NoSuchElementException错误(基于情况)
我在该程序中遇到问题: 你们学校的历史老师需要帮助给真假考试打分。这个 学生ID和考试答案存储在一个文件中。文件中的第一个条目 包含以下表格中的测试答案: TFFTFFTTTTFFTFTFTFTTT 文件中的每个其他条目都是学生的ID,后跟一个空白, 然后是学生的回答。例如,条目: ABC54301 TFTFTFTFTFTFTTFT 表示学生ID为ABC54301,问题1的答案为真, 问题2的答案是错误的,以此类推。这个学生没有回答 问题9。这次考试有20道题,全班有150多名学生。 每个正确答案得2分,每个错误答案得-1分, 没有答案得0分。编写一个程序来处理测试数据。这个 输出应该是学生的ID,然后是答案,然后是测试 分数,然后是考试分数。假设以下等级比例:90%-100%,A;80%-89.99%,B;70%-79.99%,C;60%-69.99%,D;和0%-59.99%,FJAVA.UTIL.NoSuchElementException错误(基于情况),java,java.util.scanner,nosuchelementexception,Java,Java.util.scanner,Nosuchelementexception,我在该程序中遇到问题: 你们学校的历史老师需要帮助给真假考试打分。这个 学生ID和考试答案存储在一个文件中。文件中的第一个条目 包含以下表格中的测试答案: TFFTFFTTTTFFTFTFTFTTT 文件中的每个其他条目都是学生的ID,后跟一个空白, 然后是学生的回答。例如,条目: ABC54301 TFTFTFTFTFTFTTFT 表示学生ID为ABC54301,问题1的答案为真, 问题2的答案是错误的,以此类推。这个学生没有回答 问题9。这次考试有20道题,全班有150多名学生。 每个正确答
import java.io.*;
import java.util.*;
class Assignment6
{
public static void main(String[] args)
throws FileNotFoundException
{
Scanner inFile = new Scanner(new FileReader("student.txt"));
String id, gracias;
String denada ="";
int score = 0;
double percent;
char grade;
char[] orig = new char[20];
char[] sc = new char[20];
for(int i=0 ; i<20 ; i++)
{
gracias = inFile.next();
orig[i] = gracias.charAt(i);
}
inFile.nextLine();
while(inFile.hasNext())
{
id = inFile.next();
for(int i=0 ; i<20 ; i++)
{
sc[i] = inFile.next().charAt(i);
if(sc[i] == orig[i])
score++;
else if(sc[i] != orig[i] && sc[i] != ' ')
score--;
denada += sc[i];
}
inFile.nextLine();
percent = (score/20)*100;
if(percent >= 90 && percent <= 100)
grade = 'A';
else if(percent >= 80 && percent <= 89.99)
grade = 'B';
else if(percent >= 70 && percent <= 79.99)
grade = 'C';
else if(percent >= 60 && percent <= 69.99)
grade = 'D';
else
grade = 'F';
System.out.printf("%-8s%-8s%-2d%-2c%n",id,denada,score,grade);
}
inFile.close();
}
}
任何形式的帮助都将不胜感激……谢谢您在第19行遇到了例外情况 方法返回下一个标记。当没有更多的令牌可用时,它返回“NoTouchElementException” 你检查过文件的内容了吗?确保该文件不是空的。 此外,您应该确保下一个令牌存在,而不是盲目地使用for循环 只是提醒一下-
String s="TTFFT"
只有一个令牌,而
String s="TTF FT"
有两个令牌您是否阅读了javadoc中的异常?
String s="TTFFT"
String s="TTF FT"