簡體   English   中英

Java數組和外部文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM