我正在为作业编写一个程序,该程序使用 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“grades”中,而 Grades 是一个字符串。我怎样才能做到这样,当扫描仪读取文件时,它会获取每个成绩并将其添加到名为“grades”的ArrayList中?另外,我只想获取 LetterGrade 枚举中的成绩,那么我会使用 if/else 来过滤它吗?感谢您的帮助,我会尽快回复问题。
最佳答案
将 LetterGrade.grade 更改为
LetterGrade.valueOf(grade);
LetterGrade.grade 将用于访问 LetterGrade 范围内名为 Grade 的变量。
您需要将字符串转换为枚举。
参见Lookup enum by string value了解更多详情
关于java - 如何使用 jFrame 将文件的一部分加载到 Java 中的 ArrayList 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27220422/