我有一份学生分数的txt文件,每行代表一个新学生。我想将每个学生的第一个分数添加到一个数组中,将每个学生的第二个分数添加到另一个数组中,以此类推。每个数组都是一个模块,然后我有方法来查找这些模块分数的平均值和中位数等,但我很难读取每一行并添加每一行的第一个值等。
public interface StatCalculator {
double[] CE1014FY = {};
double[] CE1014SP = {};
double[] CE1414AU = {};
double[] CE1414FY = {};
double[] CE1424AU = {};
double[] CE1424FY = {};
double[] CE1514AU = {};
double[] CE1524SP = {};
double[] CE1534AU = {};
double[] CE1544SP = {};
double[] CE1554SP = {};
double[] CE1614AU = {};
double[] CE1624SP = {};
double[] CE1634AU = {};
double[] CE1644SP = {};
static void get(){
try {
File file = new File("M:\\Documents\\ce201\\subversion\\resources\\marks.txt");
Scanner scanner = new Scanner(file);
for every line
CE1014FY.add(line[0]; //i want something like this
CE1014SP.add(line[1]
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
static double mean(double[] numbers){
double sum = 0;
for (int i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
System.out.println("mean: "+sum/numbers.length);
return sum / numbers.length;
}
public static double median(double[] numbers) {
Arrays.sort(numbers);
int middle = numbers.length/2;
if (numbers.length%2 == 1) {
System.out.println("median: "+numbers[middle]);
return numbers[middle];
} else {
System.out.println("median: "+(numbers[middle-1] + numbers[middle]) / 2.0);
return (numbers[middle-1] + numbers[middle]) / 2.0;
}
}
public static double lowerQ(double[] numbers) {
Arrays.sort(numbers);
int lqpos = (numbers.length+1)/4;
int lq= (int) (int) numbers[lqpos];
System.out.println("lower q: "+lq);
return lq;
}
public static double upperQ(double[] numbers) {
Arrays.sort(numbers);
int uqpos = 3*(numbers.length+1)/4;
int uq= (int) (int) numbers[uqpos];
System.out.println("upper q: "+uq);
return uq;
}
public static void main(String[] args) {
get();
mean(CE1014FY);
median(CE1014FY);
upperQ(CE1014FY);
lowerQ(CE1014FY);
}
然后将txt内容{
63,-1,-1,76,-1,-1,82,85,84,57,67,73,-1,-1,-1,-1,73
62,-1,-1,60,-1,-1,89,76,79,53,55,77,-1,-1,-1,-1,69
60,-1,-1,42,-1,-1,37,32,67,-1,44,56,37,-1,-1,-1,47
53,-1,-1,88,-1,-1,75,68,69,58,64,75,-1,-1,-1,-1,69
72,-1,-1,64,-1,-1,39,55,74,56,78,64,-1,-1,-1,-1,63
50,-1,-1,30,-1,-1,19,20,35,19,7,34,-1,-1,-1,-1,27
}