[英]Java Arrays and external files
我的教授給我開了這個程序,我遇到了麻煩。 這是提示和示例輸出:
將20對數字(分別是ID號和分數)讀入兩個單獨的數組中。 找到平均分數。 如下表所示,為每位學生(每行一名學生)的ID,得分和差異(得分-平均值)打印表格。 如圖所示,將總和,平均值和分數計數打印在表格的頂部。 將平均值和差異四舍五入到小數點后兩位。
輸出:
End of reading from file.
Sum = 4853
Average = 242.65 Count = 20
Id Score Diff
115 257 14.35
123 253 10.35
116 246 3.35
113 243 0.35
112 239 -3.65
104 239 -3.65
110 238 -4.65
218 243 0.35
208 242 -0.65
222 223 -19.65
223 230 -12.65
213 229 -13.65
207 228 -14.65
203 224 -18.65
305 265 22.35
306 262 19.35
311 256 13.35
325 246 3.35
321 245 2.35
323 245 2.35
我現在的主要問題是弄清楚如何將ID和Score分為兩個單獨的數組。 我通過使用讀取文件
Scanner kbReader = new File("C:\\\Users\\\Guest\\\Documents\\\java programs\\\Prog590b\\\Prog590b.in");
但是我找不到將它們排序到數組中的方法。 我並不是在要求任何人編寫我的整個代碼,而是要幫助我弄清楚如何像提示所要求的那樣將它們排序到數組中。 有人可以為我提供一些指導/反饋嗎? 謝謝。
首先逐行讀取ID和分數,然后將它們放在兩個單獨的列表中(一個用於ID,一個用於分數)。 當您實現了這一目標后,其余的事情就顯而易見了。
在數組中插入值
我建議您首先使用前幾位數字(ID),假設它們都具有相同的位數,然后將它們放在數組中。 這應該很容易:只需在字符串類中使用substring函數。
現在,對於比分,您應該繼續沿線前進,直到在比分之后找到空格為止。 然后取其子字符串; 從起始索引到最終索引(您必須為此計數)
對數組排序
有很多方法可以對數組,列表,鏈接列表等進行排序。 我建議您在線搜索算法,並嘗試遍歷代碼以了解代碼的每一行意味着什么以及如何對數組進行排序if語句應在此處工作:
如果您不太關心效率,建議您選擇選擇排序或插入排序! 一旦您了解了算法的工作原理,就可以輕松地根據ID進行排序或評分! :)
選擇排序: http : //en.m.wikipedia.org/wiki/Selection_sort
希望能有所幫助。 :)
首先,您的掃描儀被宣告錯誤。 你需要做這樣的事情
Scanner kbReader = new Scanner(new File("C:\\Users\\Guest\\Documents\\java programs\\Prog590b\\Prog590b.in"));
如果文件是ID Score {newline},依此類推,則下一步
您需要使用分割功能。
while(kbReader.hasNext()){
String line = kbReader.nextLine();
String splitLine = line.split(" ");
ArrayID.add(splitLine[0]);
ArrayScore.add(splitLine[1]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.