[英]Storing Scanner Input and Using
我有一個Java程序,它逐行讀取文本文件,該行的每一部分都使用定界符:
文本文件中的數據可以像這樣:
TeamOne : TeamTwo : TeamOneScore : TeamTwoScore.
我想創建一個摘要,顯示每個團隊參加了多少場比賽,以及每個進球數。
來自文本文件的數據將可能具有同一團隊的多個實例,並且如果將更多數據添加到文本文件,則最好能夠處理創建摘要。
存儲每一行文本以便進行比較的最佳方法是什么?
我希望它能夠制定出如果一支球隊贏了還是輸了比賽,他們取得進球的總量。
當前,從文本文件中讀取每一行,並將其存儲為字符串,然后分為4個部分。 這一切都發生在while循環內,讀取下一行時,數據將丟失:
fileinput = fileread.nextLine();
String line = fileinput;
String[] split = line.split(":");
String hometeam = split[0].trim();
String awayteam = split[1].trim();
String home_score = split[2].trim();
String away_score = split[3].trim();
因此,僅就最后一行而言:讀取下一行時,數據將丟失<-顯而易見,因為您定義了for循環的局部變量。 因此,對於每次迭代,變量將再次初始化。 因此,這是我為您提供的解決方案:
ArrayList<String[]> matches = new ArrayList<String[]>();
// open file somewhere
while(fileread.hasNextLine())
{
String line = fileread.nextLine();
String[] split = line.split(":");
String[] toAdd = new String[4]
toAdd[0] = split[0].trim();
toAdd[1] = split[1].trim();
toAdd[2] = split[2].trim();
toAdd[3] = split[3].trim();
matches.add(toAdd);
}
現在,您有了一個ArrayList,其中每個條目都是一個大小為4的字符串數組。但是請注意,如果要計算總分,則必須將字符串轉換為int,因為match的每個屬性都是string類型(因此是一個字符串數組)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.