2

ファイルから一連の数値を読み取り、最初の2つの数値を配列の行と列の長さにして、残りを整数に変換し、整数を2次元配列に配置するメソッドを作成しました。

public static int[][] fillArray(String myFile){
    //uses another class to create a text field
    TextFileInput in = new TextFileInput(myFile); 

    int[][] filledArray;
    //uses a method in class TextInputFile to read a line then go to the next line
    String line = in.readLine();
    //int i=0;
    int row, col;
    row = Integer.parseInt(line);
    line = in.readLine();
    col = Integer.parseInt(line);
    filledArray = new int[row][col];
    for(int i=0; i<row; i++){
        for (int j=0; j<col; j++){
            line = in.readLine();
            filledArray[i][j] = Integer.parseInt(line);
        }
    }
    return filledArray;
}

私の質問は、多次元配列の個々の要素にどのようにアクセスするfilledArrayかです。のように、メインメソッドに何が含まれているかを印刷filledArray[1][3]または追加するにはどうすればよいですか?filledArray[1][3]+filledArray[2][3]

4

3 に答える 3

2

fillArrayメソッドは、作成した配列への参照を返します。あなたがしなければならないのはあなたのメインメソッドでこれにローカル変数を割り当てることです。

public static void main(String[] args) {
   int[][] arr = fillArray("file.txt");

   System.out.println(arr[1][3]);

   System.out.println(arr[1][3] + arr[2][3]);
}

たとえば、配列内のインデックスを使用して個々の要素にアクセスしますarr[4][2]IndexOutOfBoundsExceptionを生成しないように注意してください。そのため、forループで配列の長さを確認することをお勧めします。

于 2013-03-09T15:31:40.443 に答える
2

返された配列をローカル配列に格納するだけです

public static void main(String[]args){
  int[][]array = fillArray("fileName"); // call the method
  // traverse the array using a loop

  for(int i=0;i<array.length;i++)
    for(int j=0;j<array[i].length;j++)
     System.out.println(a[i][j]); // do something with elements 

 }
于 2013-03-09T15:31:42.977 に答える
1

の結果を取得し、fillArray(...)それを変数に格納してから、それを使用して処理を行います。

例えば

int[][] filled=fillArray("file.txt");
System.out.println(filled[1][3]);
System.out.println(filled[1][3]+filled[2][3]);
于 2013-03-09T15:32:08.870 に答える