我工作的分配问题,其即时通讯停留在:传递字符串的ArrayList的方法返回一个double值
我提取的文本文件grades.txt到所谓的一个ArrayList studentgrade 我想接着使用提取到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乔伊莱德DDCPHHCD ==== 6 + 6 5 4 + 7 + 7 5 + 6 = 46
- 72992劳拉Norder HHHDDHHH
- 71258艾琳超过CFCDCCCP
编辑:
我看到一个接受'的String []'和'返回一个double'方法,但没有一个方法接受'名单'并返回'double'。除此之外,您是否可以尝试并明确将点放入数据结构的位置?这很难说。 –
Makoto
2014-10-03 00:58:06
@Makoto似乎ArrayList的每个元素都被分割为空格,这会给出''String []''。 – Ghostkeeper 2014-10-03 00:59:57
对不起,没有解释;我想返回一个double值,这样我就可以将这个double值写到一个名为GPA.text的新文本文件中,这个文件我还没有实现;这个问题的目的是提取分数并将它们转换为分数,然后我可以计算出最终的GPA – JavaisHard 2014-10-03 01:37:20