[英]Passing a String ArrayList to a method returning a double value
我正在研究一個分配問題,該問題停留在:
我想將文本文件grades.txt提取到名為studentgrade的數組列表中,然后使用提取到數組列表的ive轉換為convertgrade方法。
轉換等級的目的是讀取文本文件的行,然后將字符串值轉換為點; 然后將所有成績的總和相加。
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;
}
}
編輯:
您必須這樣做:
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));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.