2012-11-12 38 views
1

基本上我有一個整數行文件。每行有9位數字。我想讀這個文件。然後將每行輸入到它的數組中。我希望數組每次都是相同的。因爲我要對從第一行創建的數組執行一些處理。然後使用不同的行處理相同的數組。從輸入文件中取值並逐行添加到整數數組(java)

我的輸入文件如下:

8 5 3 8 0 0 4 4 0 
8 5 3 8 0 0 4 2 2 

而且我現在用的是當前的代碼:

BufferedReader br = new BufferedReader(new FileReader("c:/lol.txt")); 
      Scanner sc = new Scanner(new File("c:/lol.txt")); 
      String line; 
      while (sc.hasNextLine()){ 
       line = sc.nextLine(); 
       int k = Integer.parseInt(line); 

現在顯然我應該做更多的東西,我只是真的不知道如何去做。

任何幫助,非常感謝。

+1

你有沒有運行你的代碼?它應該在這裏引發一個異常:'int k = Integer.parseInt(line);'因爲整行不能轉換爲一個數字。 (有很多數字和空格)。你也創建一個'BufferedReader'並且從不使用它。你的問題是如何完成你的程序? – jlordo

+2

添加到jlordo的評論中,您將希望獲取基於空格分隔符的整數值。 'line.split(「」);' – WilliamShatner

+0

你是什麼意思,「因爲我要對從第一行創建的數組做一些處理,然後使用不同的行處理同一個數組。究竟? –

回答

1

嘗試:

import java.util.Scanner; 
import java.io.File; 

public class Test { 
    public static void main(String[] args) throws Exception { 
     Scanner sc = new Scanner(new File("c:/lol.txt")); 

     while (sc.hasNext()) { 
      String line = sc.nextLine(); 
      // get String array from line 
      String[] strarr = line.split(" "); // attention: split expect regular expression, not just delimiter! 
      // initialize array 
      int[] intarr = new int[strarr.length]; 
      // convert each element to integer 
      for (int i = 0; i < strarr.length; i++) { 
       intarr[i] = Integer.valueOf(strarr[i]); // <= update array from new line 
      } 
     } 
    } 
} 

當然,你應該處理異常,而不是將它傳遞。

+0

除了將它們添加到一個整數數組之外,基本上是爲他完成了整個任務。在那裏添加一些意見,因爲他知道發生了什麼:) – WilliamShatner

+0

我想我完全誤解了這個問題......我更新了我的答案。 –

+0

我會移動int數組賦值並將其更改爲int [] intarr = new int [strarr.length];'也可以使用不同的長度。 – Geobits

相關問題