2017-02-20 8 views
0

У меня есть текстовый файл с 12 столбцами. Каждый столбец имеет заголовок, а затем с плавающей точкой или строку в столбце, напримерСредние значения на Java для каждого столбца txt-файла

A   B  time 
-0.042 centre 00:00:03 

Каждый столбец отделяется пробелом. Я хотел бы вычислить среднее число чисел в каждом столбце. Позже я вычислит среднее значение столбцов для определенных временных интервалов и сравним их с общим средним. Поэтому я решил, что проще всего поместить все элементы в массив и называть этот массив заголовком столбца. Я не уверен, как сделать несколько массивов или списков, по одному для каждого столбца и как пропустить столбец, если он содержит только строки. Я использую try catch для текстового файла. Вот что у меня есть для моей попытки до сих пор:

try { 
    FileReader fileReader = new FileReader(fileName); 
    BufferedReader bufferedReader = new BufferedReader(fileReader); 
    ArrayList<Integer> lines = new ArrayList<Integer>(); 
    Float columns = 12; 
    while((num_line = bufferedReader.readLine()) != null) { 
     lines.add(Float.valueOf(line.split(" ")[columns-1])); 
    } 
    for(int l:lines){ 
    sum+=l; 
    } 
    float average = (float)sum/lines.size(); 
bufferedReader.close();  
} 
+0

Вы получите сообщение об ошибке для Float.valueOf (line.split ("") [columns-1]), когда есть строка, в которой вам нужно попытаться поймать ее. – StackFlowed

+0

Что вы пытались решить во второй части своего вопроса: «... как пропустить столбец, если он имеет только строки»? –

ответ

0

Я не уверен в том, как сделать несколько массивов или списков, по одному для каждого столбца

Вы можете использовать List столбцов (или строка), где каждый столбец (или строка) снова представлена ​​в List:

List<List<Integer>> columns = new ArrayList<>(); 

Это сообщение содержит детали по работе со списком Li sts: Working with a List of Lists in Java

Смежные вопросы