我正在编写一个程序,使用jFrame UI读取充满“成绩”(A,B,C,C +等)的记事本文件的内容,然后计算成绩的总数以及最高和最低成绩。在jFrame中,用户输入文件名(我不希望使用JFileChooser,因为这不是分配的一部分),然后单击“加载”以加载文件。我正在努力与Load()方法。到目前为止,我有:
public ArrayList<LetterGrade> Load(File file) throws FileNotFoundException {
ArrayList<LetterGrade> grades = new ArrayList();
try{
Scanner input = new Scanner(file);
String grade = input.nextLine();
grades.add(LetterGrade.grade);
} catch (FileNotFoundException ex) {
System.out.printf("ERROR: %s", ex);
}
return grades;
我知道在这行上存在grades.add(LetterGrade.grade)问题,因为我只能将一个LetterGrade枚举(A,AMinus,BPlus,B等)添加到ArrayList“等级”,而等级是字符串。我该如何做,以便当Scanner读取文件时,它将获取每个等级并将其添加到名为“ grades”的ArrayList中?另外,我只想取得属于我的LetterGrade枚举的分数,所以我会使用if / else来过滤吗?感谢您的帮助,我将尽快回答问题。
最佳答案
将LetterGrade.grade更改为
LetterGrade.valueOf(grade);
LetterGrade.grade将用于访问LetterGrade范围内的名为grade的变量。
您需要将字符串转换为枚举。
有关更多详细信息,请参见Lookup enum by string value