将String ArrayList传递给返回double值的方法

时间:2014-10-03 00:52:08

标签: java arraylist

我正在处理任务问题,我坚持:

我将一个文本文件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;
   }


}
  • 57363 Joy Ryder D D C C H H C D ==== 6 + 6 +5 +4 + 7 + 7 +5 + 6 = 46
  • 72992 Laura Norder H H H D H H H H.
    • 71258 Eileen Over C F C C C C P

编辑:

1 个答案:

答案 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));
}