2014-03-03 75 views
0

我試圖編寫一個程序來讀取.txt文件中的成績,然後以與數組索引相反的順序輸出成績。Java:如何將.txt中的值存儲到數組中

import java.io.* 
import java.util.* 

public class GradePrint { 
public static void main(String[] args) throws IOException { 
    Scanner in = new Scanner(new FileReader("data.txt")); 
    int[] grades = new int[30]; 

    for (int i = 0; i < 30, i++){ 
     int grade = in.nextInt(); 

我該如何把這些等級放在一個數組中,然後以相反的順序打印出來?

+0

你應該嘗試做自己的功課。本網站旨在幫助解決具體編程問題中的問題,而不是爲您做好功課。 –

+1

@EngineerDollery家庭作業問題*在SO上不是問題。他們只需要說明他們是功課,並告訴我們他們已經嘗試了什麼。 – SnakeDoc

+0

是的,但OP只發布了他們的作業問題,而不是他們嘗試過的。 –

回答

0

假設你的成績是在文本文件中爲10 20 30 40等,您能給我們這個代碼for循環:

int grade = in.nextInt(); //This code is from your code example 
grades[i] = grade; 

要打印以相反的順序,你可以用這個for循環:

for (int i = 29; i >= 0; i--) 
{ 
    System.out.println(grades[i]); //Print out the value at this array index. 
} 
+1

謝謝,這將幫助我完成作業的其餘部分。我只是困惑於如何將值存儲到數組中。 – ChaCol

0

我不會使用數組,如果你不提前知道文件中有多少個檔次。

相反,嘗試使用List像這樣:

import java.io.* 
import java.util.* 

public class GradePrint { 
public static void main(String[] args) throws IOException { 
    List<Integer> grades = new ArrayList<Integer>(); 
    Scanner in = new Scanner(new FileReader("data.txt")); 
    int[] grades = new int[30]; 

    for (int i = 0; i < 30, i++){ 
     grades.add(in.nextInt()); 
    } 
} 

你會發現兩件事情。

1)我使用接口List和類ArrayList。這是有意的,因爲ArrayListList,這可以完成。這樣做的好處是您可以將ArrayList更改爲其他內容,只要它仍然是List,它將繼續工作。

2)List提供了可以隨意添加多個元素的好處,它可以自動調整自身大小而無需管理它。

要獲得元素你的List的,這樣做:

grades.get(i); 

iList檔次的位置。在這方面,您可以將List很像一個數組。

+0

我知道文件中有30個值。 – ChaCol

+0

好吧,然後記住這個未來; -P ...有助於構建更強大的程序。 – SnakeDoc

相關問題