2013-04-09 83 views
-4

我有一些文本文件的时间信息,如:读和拆分的文本文件(JAVA)

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

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

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

+5

好了,你有三个任务这里:逐行读取文件;解析每一行;计算平均值。每个任务有多远? – 2013-04-09 13:24:22

+1

你有一些代码给我们吗? – 2013-04-09 13:24:27

回答

11

您可以使用BufferedReaderScanner或者其他一些技术来逐行读取文件。使用扫描仪是非常简单的,就像这样:

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

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

对于分割字符串与定义的分隔符,你可以使用拆分法,即recevies正则表达式作为参数,并通过所有的字符序列将字符串分割那符合那个表达。在你的情况下,它很简单,只需将;

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

您可以最后将变量强制转换为Integer.valueOf(last)的整数并将所有值一起添加。 – 2013-04-09 13:32:47

0

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