2014-07-15 40 views
0

我試圖從一個文件中得到一個二維數組,並進入我的程序。我不確定二維數組的大小是多少,它必須按降序排列。如果我在我的代碼中輸入一個示例數組,for語句將完美執行。我最感到沮喪的是從另一個文件中獲取二維數組,並讓我的代碼運行並執行它。誰能幫我這個..從Java中的另一個文件調用二維數組

代碼:

public class Project2 { 
public static void main(String[] args) throws Exception { 
    Scanner sc = new Scanner(new File("prog2.txt")); 
    int number = 0; 
    while (sc.hasNext()) { 
    sc.nextLine(); 
    number++; 
    } 
    System.out.println(number); 

這是我要得到我需要的文件。這顯示了有多少行。

代碼:

for (int i = 0; i < hours.length; i++) { 
    int sum = totalHours(hours, i); 
    System.out.println("Employee " + i + ": " + sum); 
    } 
} 

這是該井執行完美每當我手動鍵入號碼爲2D陣列語句。

我試圖從文件中獲取數字來運行這個for語句。我完全困惑於如何做到這一點,而且我一直堅持這幾個小時。感謝你們所有的幫助!

+0

你是如何存儲在文件陣列。也從該文件發佈樣本。 – guptakvgaurav

+0

輸入文件格式如何顯示,以及如何將其轉換爲二維數組? – evanwong

+0

[Java中的不同文件中的數組]可能的重複(http://stackoverflow.com/questions/24748570/arrays-from-a-different-file-in-java) – paisanco

回答

0

希望這可以幫到你。

的java文件

public class ReadFile { 
    public static void main(String[] args) throws FileNotFoundException { 
     Scanner sc = new Scanner(new File("./assets/prog2.txt")); 
     int[][] storedArray = new int[3][3]; 
     int i = 0, j = 0; 
     while (sc.hasNext()) { 
      String line = sc.nextLine(); 
      String[] rows = line.split(":"); 
      for (String row : rows) { 
       String[] cells = row.split("~"); 
       j = 0; 
       for (String cell : cells) { 
        // System.out.println(cell); 
        storedArray[i][j] = Integer.parseInt(cell); 
        j++; 
       } 
       i++; 
      } 
      for (int[] p : storedArray) { 
       System.out.println(Arrays.toString(p)); 
      } 
     } 
    } 
} 

prog2.txt

1~2~3:4~5~6:7~8~9 

項目目錄structire

project 
    |---src--javafile 
    | 
    |---assets---prog2.txt 

假設

  1. 〜是用於當我們想在分隔同一行上的2-d陣列中的兩個元素的分隔符。
  2. :當我們想在二維數組中分隔兩行時使用分隔符。
  3. 對於此示例,2-D數組的大小限制爲3x3。爲了獲得靈活的大小,需要添加運行時檢查。

輸出

[1, 2, 3] 
[4, 5, 6] 
[7, 8, 9] 
+0

如果您知道['ArrayList'](http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html)是什麼,假設#3不必在那裏。 – Krumia

+0

似乎OP正在將這些東西存儲回二維數組中,從for循環中可以看出這一點。可能存儲在二維數組是他的要求。如果OP想要在列表中存儲值的選項,他當然可以。 – guptakvgaurav

+0

也許你錯過了原來的問題這部分:_我不知道二維數組的大小是什麼......_。所以它是一個動態增長的集合。 – Krumia

相關問題