【问题标题】:Read and split a text file (java)读取和拆分文本文件(java)
【发布时间】:2013-04-09 13:23:22
【问题描述】:

我有一些带有时间信息的文本文件,例如:

46321882696937;46322241663603;358966666
46325844895266;46326074026933;229131667
46417974251902;46418206896898;232644996
46422760835237;46423223321897;462486660

现在,我需要文件的第三列来计算平均值。

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

【问题讨论】:

  • 好的,所以你在这里完成了三个任务:逐行读取文件;解析每一行;计算平均值。每项任务你完成了多少?
  • 你有一些代码给我们吗?

标签: java parsing file-io split readfile


【解决方案1】:

您可以使用BufferedReaderScanner 或其他一些技术逐行读取文件。使用 Scanner 非常简单,如下所示:

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

    while(scanner.hasNext()){
        System.out.println(scanner.nextLine());
    }
}

要使用已定义的分隔符拆分字符串,您可以使用 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()){
        String[] tokens = scanner.nextLine().split(";");
        String last = tokens[tokens.length - 1];
        System.out.println(last);
    }
}

【讨论】:

  • 您可以使用 Integer.valueOf(last) 将变量 last 转换为 Integer 并将所有值相加。
【解决方案2】:

是的,您必须阅读文件的每一行并用“;”分割它分隔符并读取第三个元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-28
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多