2014-10-09 50 views
-1

對於我的任務,我需要編寫一個計算最終標記並打印它們的程序。所述用戶輸入將是如下(輸入是通過Java編輯程序,而不是命令提示):讀取用戶使用Java輸入的行

Firstname Lastname ExamMark MidtermMark etc. 

有一個已知的數目的字段(11:2名,9馬克),但未知數量的學生(每行一名學生)。

我知道我可以通過計算使用while循環的行數來確定學生的數量。 但是,我希望能夠將該行的每個部分分段到相應的變量。 (說行中的第一個單詞等於第一個名字等)。我不完全確定如何做到這一點。我在想某種程度上說,每一行都是一個數組,然後說arrayx [0] = first name和arrayx [1] = last name等,然後進行所需的計算,然後循環每行/學生。但我不知道如何使輸入的行成爲一個數組。有沒有簡單的方法來做到這一點?

回答

2

如果每個數據令牌都被一個空格分開,那麼您可以使用String的split(...)方法輕鬆地將字符串標記放入數組中。也許通過split(" "),如果你知道它總是一個空間或split("\\s+"),如果你不知道。

例如,

while (myScanner.hasNextLine()) { 

    String line = myScanner.nextLine(); 
    String[] tokens = line.split("\\s+"); 

    // now iterate through your array of tokens  
    //.... 
}