Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从文本文件中读取特定列并计算该列的平均值?_Java_Arrays_File - Fatal编程技术网

Java 如何从文本文件中读取特定列并计算该列的平均值?

Java 如何从文本文件中读取特定列并计算该列的平均值?,java,arrays,file,Java,Arrays,File,我有点被当前正在进行的java练习所困扰。我有一个以下格式的文本文件: 奎奥克拉,2221,3.6 哇,鲍威尔,3332,9.3 邹头,5556,9.7 福禄坡,8766,8.1 安迪·坎迪,3339,6.8 我现在想计算整个第三列的平均值,但我必须首先提取我相信的数据并将其存储在数组中。我能够用缓冲读取器读取所有数据,并在控制台中打印出整个文件,但这并没有让我更接近于将其放入数组。任何关于如何使用缓冲读取器将文本文件的特定列读入数组的建议都将不胜感激 非常感谢您。您可以使用这部分代码拆分文本文

我有点被当前正在进行的java练习所困扰。我有一个以下格式的文本文件:

奎奥克拉,2221,3.6 哇,鲍威尔,3332,9.3 邹头,5556,9.7 福禄坡,8766,8.1 安迪·坎迪,3339,6.8

我现在想计算整个第三列的平均值,但我必须首先提取我相信的数据并将其存储在数组中。我能够用缓冲读取器读取所有数据,并在控制台中打印出整个文件,但这并没有让我更接近于将其放入数组。任何关于如何使用缓冲读取器将文本文件的特定列读入数组的建议都将不胜感激


非常感谢您。

您可以使用这部分代码拆分文本文件:

BufferedReader in = null;
try {
in = new BufferedReader(new FileReader("textfile.txt"));
String read = null;
    while ((read = in.readLine()) != null) {
        String[] splited = read.split(",");
        for (String part : splited) {
            System.out.println(part);
        }
    }
} catch (IOException e) {
System.out.println("There was a problem: " + e);
e.printStackTrace();
} finally {
    try {
        in.close();
    } catch (Exception e) {
    }
}

然后你将把所有列都放在数组
部分

这肯定不是最好的解决方案,但对你来说应该足够了

BufferedReader input = new BufferedReader(new FileReader("/file"));
                int numOfColumn = 2;
                String line = "";
                ArrayList<Integer>lines =  new ArrayList<>();
                while ((line = input.readLine()) != null) {
                    lines.add(Integer.valueOf(line.split(",")[numOfColumn-1]));
                }
                long sum =0L;
                for(int j:lines){
                    sum+=j;
                }
                int avg = (int)sum/lines.size();
BufferedReader input=newbufferedreader(newfilereader(“/file”);
int numOfColumn=2;
字符串行=”;
ArrayListlines=新的ArrayList();
而((line=input.readLine())!=null){
line.add(Integer.valueOf(line.split(“,”)[numof column-1]);
}
长和=0L;
用于(int j:行){
总和+=j;
}
int avg=(int)sum/lines.size();

我假设每个数据集都由文本文件中的换行符分隔

ArrayList<Double> thirdColumn = new ArrayList<>();
BufferedReader in = null;
String line=null;

//initialize your reader here

while ((line = in.readLine())!=null){

    String[] split = line.split(",");

    if (split.length>2)
        thirdColumn.add(Double.parseDouble(split[2]));
}
ArrayList thirdColumn=new ArrayList();
BufferedReader in=null;
字符串行=null;
//在这里初始化你的阅读器
而((line=in.readLine())!=null){
String[]split=line.split(“,”);
如果(拆分长度>2)
thirdColumn.add(Double.parseDouble(split[2]);
}
在while循环结束时,应该准备好
thirdColumn
ArrayList并填充所需的数据

假设您的数据集具有以下标准格式

字符串,整数,双精度

因此,自然地,用逗号分割应该得到长度为3的字符串数组,其中索引2处的字符串包含第三列数据