簡體   English   中英

將String ArrayList傳遞給返回雙精度值的方法

[英]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;
   }


}
  • 57363喬伊·萊德DDCPHHCD ==== 6 + 6 +5 +4 + 7 + 7 +5 + 6 = 46
  • 72992勞拉·諾德(Laura Norder)HHHDDHHH
    • 71258艾琳超過CFCDCCCP

編輯:

您必須這樣做:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM