我正在处理任务问题,我坚持:
我将一个文本文件grades.txt提取到名为studentgrade的arraylist中 我想然后使用提取到arraylist的等级来转换方法。
转换等级的目的是读取文本文件的行,然后将字符串值转换为点;然后将所有等级加起来总和。
package Q2;
import java.util.StringTokenizer;
import java.util.ArrayList;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
import java.util.List;
public class studentGPA {
private static String studentGrades[];
public static void main(String[] args) throws IOException {
double gpa, points = 0;
//opening grades and extracting to array
File file = new File ("Grades.txt");
Scanner inputFile = new Scanner(file);
ArrayList<String> studentlist = new ArrayList<String>();
while (inputFile.hasNext())
{
studentlist.add(inputFile.nextLine());
}
/*print out student ID
for (int index = 0; index<studentlist.size(); index++)
{
StudentID = (studentlist.get(index)).split(" ",11);
System.out.println("studentID:" + index + ": " + StudentID[0]);
}
System.out.println(); */
studentGrades = null;
for (int index = 0; index<studentlist.size(); index++)
{
String data[] = studentlist.get(index).split(" ");
for (int index_grade = 0 ; index_grade < 8;)
{
studentGrades[index_grade] = data[index_grade+3];
}
System.out.println(convertGrade(studentGrades));
}
//testing purposes
/*for (int index = 0; index<studentlist.size(); index++)
{
StudentGrade = (studentlist.get(index)).split(" ",11);
System.out.println("studentID:" + index + ": " + StudentGrade[3] + StudentGrade[4] +
StudentGrade[5] + StudentGrade[6] + StudentGrade[7] + StudentGrade[8] + StudentGrade[9] );
}*/
//answer should be 46 but im getting 14
}
public static double convertGrade(String studentgrade[]) {
double points = 0;
for (int index = 3; index<studentgrade.length; index++)
{
if (studentgrade[index].contains("H"))
points = 7;
else if (studentgrade[index].contains("D"))
points = 6;
else if (studentgrade[index].contains("C"))
points = 5;
else if (studentgrade[index].contains("P"))
points = 4;
else if (studentgrade[index].contains("F"))
points = 0;
points = points + points;
}
return points;
}
}
编辑:
答案 0 :(得分:0)
你必须这样做:
System.out.println(convertGrade(StudentGrade));
修改强>
for (int index = 0; index<studentlist.size(); index++)
{
String data[] = studentlist.get(index).split(" ");
for (int index_grade = 0 ; index_grade < 8)
{
StudentGrade[index_grade] = data[index_grade+3];
}
System.out.println(convertGrade(StudentGrade));
}