2013-04-09 124 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

是的,你必須閱讀文件的每一行,並用「;」分隔它。分隔符並讀取第三個元素。