2016-06-08 28 views
-1

我需要做的是創建一個數組,需要用文本文件中的行數來填充,因此可以說文本文件有5行,所以數組將會是:array [5] 我有以下代碼:如何用文本文件中的行數創建一個數組?

try{ LineNumberReader lnr = new LineNumberReader(new FileReader(new File("lista de numeros.txt"))); int linenumber = 0; int primero = 0; 
      String tmp = new String(); 
      tmp=lnr.readLine(); 
       while(tmp != null) 
       { 
        linenumber++; 
        JOptionPane.showMessageDialog (null, (tmp)); 
        tmp=lnr.readLine(); 

       } int mitad=(0+linenumber)/2; int [] array = new int[linenumber]; 

我想要做的是創建數組,因爲它是從代碼的最後一行,我想這樣,但如果我嘗試打印這樣的:

JOptionPane.showMessageDialog (null, "Number at half: " + array[mitad]); 

只顯示: 誰能告訴我怎樣才能以正確的方式填補了陣列請

+0

您需要將元素(在本例中爲'tmp')添加到您的'int []數組'中。 'array [mitad]'是'0',因爲這是'int'類型變量的默認值。 – MasterBlaster

回答

0

你永遠不填寫爲int數組中的元素代碼和缺省值的int數組爲0 您可以嘗試使用ArrayList添加您動態編號然後用它來填充陣列:

try { 
      LineNumberReader lnr = new LineNumberReader(new FileReader(new File("lista de numeros.txt"))); 
      int linenumber = 0; 
      int primero = 0; 
      ArrayList<Integer> tmpArrayList = new ArrayList(); 
      String tmp = new String(); 
      tmp = lnr.readLine(); 
      while (tmp != null) { 
       tmpArrayList.add(Integer.parseInt(tmp)); 
       linenumber++; 
       JOptionPane.showMessageDialog(null, (tmp)); 
       tmp = lnr.readLine(); 

      } 
      int mitad = (0 + linenumber)/2; 
      int[] array = new int[linenumber]; 
      for (int i = 0; i < array.length; i++) { 
       array[i] = tmpArrayList.get(i).intValue(); 
      } 

使用ArrayList,你甚至不需要計算亞麻布數量。只需使用tmpArrayList.size(),而不是在你的while循環之後。但通知,你的文件應該只有ints裏面,沒有字符串!否則它將無法工作。

或者,您可以再次讀取所有行,開始第二個循環以填充您的數組。但它並不是最好的方法,因爲在這種情況下,您需要讀取文件兩次:一次來計算實例化數組的行數,一次來填充它。

相關問題