【问题标题】:Java computing averages of each column of txt filetxt文件每列的Java计算平均值
【发布时间】:2017-02-20 20:36:12
【问题描述】:

我有一个包含 12 列的文本文件。每列都有一个标题,然后是列中的浮点数或字符串,例如

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();     
}

【问题讨论】:

  • 当有一个字符串需要尝试捕获时,您将收到 Float.valueOf(line.split(" ")[columns-1]) 错误。
  • 您尝试解决问题的第二部分“...如果只有字符串,如何跳过列”?

标签: java arrays


【解决方案1】:

我不确定如何制作多个数组或列表,每列一个

您可以使用列(或行)的List,其中每列(或行)再次由List 表示:

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

这篇文章提供了有关使用列表列表的更多信息:Working with a List of Lists in Java

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多