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

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

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

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

我怎样才能做到这一点? 我需要获取每个文本行,然后获取最后一列?

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

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

要使用已定义的分隔符拆分String,可以使用split方法,它接收正则表达式作为参数,并使用与该表达式匹配的所有字符序列拆分String。 在你的情况下它很简单,只是;

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

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