2017-02-05 10 views
2

私は.ppmファイルからデータを取り込み、画像にフィルターをかけようとしています。 イメージの高さと幅を印刷するときに何らかの理由で値が正しく返されますが、データを2次元配列に格納すると、高さが幅と同じでもない場合でも高さが返されます。ここに関連するコードのスニペットがあります。私はColor 2D配列を初期化することと何か関係がありますか?2D配列が正しく宣言されていません

Color[][] totalData = null; 
    int x = 0; 
    int y = 0; 

    while (fileScanner.hasNext()) { 
     // Handles comments 
     String line = fileScanner.nextLine(); 
     if ((line.startsWith("#"))) { 
      continue; 
     } 

     width = fileScanner.nextInt(); 
     height = fileScanner.nextInt(); 
     System.out.println(width); //4 
     System.out.println(height); //3 

     //Skips the Max color value 
     fileScanner.next(); 

     totalData = new Color[height][width]; 
     System.out.println(totalData[0].length); //4 
     System.out.println(totalData[1].length); //4 

答えて

5

配列の1行目と2行目の長さを印刷していますが、2次元配列の幅であるため、両方とも4です。

System.out.println(totalData.length); // the number of rows (3) 
System.out.println(totalData[0].length); // the length of each row (4) 
+0

だから、最初の次元の配列はインデックスで表現されていません。

は、高さと幅(これは同じではありません)、あなたは印刷する必要がありますを参照するには?また、これが本当であれば、なぜtotalData [1]が何かを返すのでしょうか? –

+0

'totalData [1]'は、2D配列の2番目の行です。私はあなたのコメントの最初の部分であなたが何を求めているのか分かりません。 – Eran

+0

私はあなたが言っていることを理解しています。では、totalData 2D配列を定義する必要がありますか? –

関連する問題