2012-03-09 12 views
1

私はmommertaryを使用して文字列を使用して、最初の最初の列とすべての行を入力した文字列内のすべての数値と比較するためにintに変換しようとしています。数値を入力すると、NullPointerExceptionが発生します。問題は、なぜ私はすべてのオブジェクトを適切に宣言したように感じるときに、コンパイラがこれを私に伝えているのか理解できません。助けてください!なぜNullPointerExceptionがありますか?

import java.util.ArrayList; 

public class Decoder 
{ 

    private int[][] zipdecoder; 
    private ArrayList<Integer> zipcode; 
    private String finalCode; 
    private String bars; 
    private int place; 
public Decoder() 
{ 
    int[][] zipdecoder = new int[][]{ 
     {1,0,0,0,1,1}, 
     {2,0,0,1,0,1}, 
     {3,0,0,1,1,1}, 
     {4,0,1,0,0,0}, 
     {5,0,1,0,1,1}, 
     {6,0,1,1,0,0}, 
     {7,1,0,0,0,0}, 
     {8,1,0,0,1,1}, 
     {9,1,0,1,0,0}, 
     {0,1,1,0,0,0} 
     }; 
    zipcode = new ArrayList<Integer>(); 
} 

public void insertToArray(String zip) 
{ 
    int count = 0; 

    for(int i = 1; i<zip.length()+1;i++) 
    { 
     String piece = zip.substring(count, i); 

     int number = Integer.parseInt(piece); 
     for(int j = 0;j<10;j++) 
     { 
      if(number == zipdecoder[j][0]){ 
      for(int a = 1;a<5;a++) 
      { 
       zipcode.add(place,zipdecoder[j][a]); 
       place++; 
      } 
     } 
     count++; 
    } 

    } 
} 
+1

実際にどこに行があるのか​​がわかります。 –

+0

insertToArrayメソッドは、例外をスローします。私はそのことについて申し訳ありません。実際にコンパイルすると、プログラムを実行するとプログラムがクラッシュし、InsertToArrayMethodにエラーが発生します。 – James

答えて

10

あなたは、コンストラクタでクラスのメンバーzipdecoderが、(同じ名前の)新しいローカル変数を初期化していません。

変更

zipdecoder = new int[][]{ 

にこの

int[][] zipdecoder = new int[][]{ 

、それが動作するはずです。

+0

多くのことを説明しています。ありがとう! – James

+0

これは私が欲しかった答えです。できるだけ早くそれを受け入れる – James

関連する問題