我是一個初學者在java,我很努力讓這個代碼工作。我正在嘗試讀取CSV文件,然後使用該數據計算平均值,然後返回最高平均值和最高平均值的摘要。Java閱讀文件/掃描器
輸入如下:
艾麗西亞商標,89,90,100,95,75,85,94,100,90,92
鮑比·裏克斯,98,79,87,79,9 ,98,7,19,98,78
這裏是放出來應該是什麼樣子(數字是不正確的,例如只):
艾麗西亞商標85.5乙
鮑比·裏克斯90.0 A-
...
高98.2
低56.5
平均78.3333
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
public class Test
{
public static void main(String[] args)
{
Test x = new Test();
x.high();
}
public void high()
{
File file2 = new File("scores.csv");
try
{
Scanner scanner = new Scanner(file2);
while (scanner.hasNextLine())
{
String line2 = scanner.nextLine();
String[] value2 = line2.split(",");
// Converts String Array into Double Array
double[] score = new double[value2.length];
for (int i = 1; i < value2.length; i++)
{
score[i] = Double.parseDouble(value2[i]);
}
// Finds the sum and then the average, adds it to a array List
ArrayList<Double> av;
av = new ArrayList<Double>();
double sumNum = 0.0;
for (double i : score)
{
sumNum += i;
}
double aver = sumNum/10;
av.add(aver);
double max = 0, min = 100;
for (int a = 0; a < av.size(); a++)
{
double s = av.get(a);
max = Math.max(max, s);
min = Math.min(min, s);
aver += s;
}
System.out.println("High " + max + "");
System.out.println("Low " + min + "");
System.out.println("Average " + aver/av.size() + "");
}
scanner.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
}
我覺得我有問題是與while循環,但我不是太確定了。任何幫助解決這個問題將非常感激。
你告訴我們你的需求,你告訴我們的代碼,但你不要告訴我們你的代碼有什麼問題,這使我們很難幫助你。請告訴我們您的代碼出了什麼問題,它的行爲不正確。 – 2013-05-05 19:47:21
爲什麼你'av = new ArrayList();'在每次迭代?把它放在'while'循環之外。 –
Maroun
2013-05-05 19:51:43
'這就是外觀應該看起來像什麼,但它看起來像什麼? – 2013-05-05 19:52:51