读取并拆分文本文件(java)

读取并拆分文本文件(java),java,parsing,file-io,split,readfile,Java,Parsing,File Io,Split,Readfile,我有一些包含时间信息的文本文件,如: 46321882696937;46322241663603;358966666 46325844895266;46326074026933;229131667 46417974251902;46418206896898;232644996 46422760835237;46423223321897;462486660 现在,我需要文件的第三列来计算平均值 我该怎么做?我需要获取每一行文本,然后获取最后一列?是的,您必须读取文件的每一行并用“;”分隔符将其拆

我有一些包含时间信息的文本文件,如:

46321882696937;46322241663603;358966666
46325844895266;46326074026933;229131667
46417974251902;46418206896898;232644996
46422760835237;46423223321897;462486660
现在,我需要文件的第三列来计算平均值


我该怎么做?我需要获取每一行文本,然后获取最后一列?

是的,您必须读取文件的每一行并用“;”分隔符将其拆分,然后读取第三个元素。

您可以使用
缓冲读取器或
扫描仪,甚至其他技术逐行读取文件。使用扫描仪非常简单,如下所示:

public void read(File file) throws IOException{
    Scanner scanner = new Scanner(file);

    while(scanner.hasNext()){
        System.out.println(scanner.nextLine());
    }
}
public void read(File file) throws IOException{
    Scanner scanner = new Scanner(file);

    while(scanner.hasNext()){
        String[] tokens = scanner.nextLine().split(";");
        String last = tokens[tokens.length - 1];
        System.out.println(last);
    }
}
要使用定义的分隔符拆分字符串,可以使用split方法,该方法接收正则表达式作为参数,并按与该表达式匹配的所有字符序列拆分字符串。在您的例子中,它非常简单,只是

String[] matches = myString.split(";");
如果你想得到数组的最后一项,你可以用它的
length
作为参数。记住数组的最后一项总是在索引
length-1

String lastItem = matches[matches.length - 1];
如果你将所有这些结合起来,你可以得到如下结果:

public void read(File file) throws IOException{
    Scanner scanner = new Scanner(file);

    while(scanner.hasNext()){
        System.out.println(scanner.nextLine());
    }
}
public void read(File file) throws IOException{
    Scanner scanner = new Scanner(file);

    while(scanner.hasNext()){
        String[] tokens = scanner.nextLine().split(";");
        String last = tokens[tokens.length - 1];
        System.out.println(last);
    }
}

好的,这里有三个任务:逐行读取文件;解析每一行;计算平均值。每项任务你完成了多少?你有一些代码给我们吗?你可以用Integer.valueOf(last)将变量last转换成整数,并将所有值相加。