2017-11-27 12 views
-1

イントロのJavaコースの割り当てをしています。 Jgrasp氏によると、Javaは実際には]を見たいと思っています。ここで私の配列の要素数を指定しています。ここに私の配列のための私のコードは次のとおりです。Javaでギザギザの配列を作成すると、エラー: ']'が発生する

//makes an two dimensional global string array named "cal" to put events 
//in and populate a calendar program 

public static String[][] cal = new String[12][]; 
cal[0]=new String[31]; 
cal[1]=new String[28]; 
cal[2]=new String[31]; 
cal[3]=new String[30]; 
cal[4]=new String[31]; 
cal[5]=new String[30]; 
cal[6]=new String[31]; 
cal[7]=new String[31]; 
cal[8]=new String[30]; 
cal[9]=new String[31]; 
cal[10]=new String[30]; 
cal[11]=new String[31]; 

私のテキストブックによると、これは、ジャグ配列の正しい形式ですが、Jgraspは、javaが余分に閉じ括弧を予測する場合、角括弧内のすべての数字があると言っています。助けて?

+0

問題が正確に何であるの中でそれを初期化することができますか?あなたはどういう意味ですか?* "javaは本当に '' '' *"を見たいですか? –

+0

どの行番号にエラーが表示され、その行にはどのコードがありますか? –

+0

また、クラス宣言やすべてのフィールドのように、これより前のコードを表示してください。あなたは、このコードの前にコードを混乱させているかもしれません、そして、コンパイラは、前のコードを理解することができないのでここで死ぬでしょう。 – markspace

答えて

1

staticブロックまたはメソッド本体の外部にあるstaticメンバを初期化するためです。

staticブロックを使用して初期化します。

public static String[][] cal = new String[12][]; 
static 
{ 
    cal [0]=new String[31]; 
    cal [1]=new String[28]; 
    cal [2]=new String[31]; 
    cal [3]=new String[30]; 
    cal [4]=new String[31]; 
    cal [5]=new String[30]; 
    cal [6]=new String[31]; 
    cal [7]=new String[31]; 
    cal [8]=new String[30]; 
    cal [9]=new String[31]; 
    cal [10]=new String[30]; 
    cal [11]=new String[31]; 
} 

それは静的メンバは、非静的スコープ(ブロックまたはメソッド)内で初期化することができないhere

0

作業参照。 Stringを非静的として宣言し、非静的ブロック内で初期化することができます。

public String[][] cal = new String[12][]; 
{ 
    cal [0]=new String[31]; 
    cal [1]=new String[28]; 
    cal [2]=new String[31]; 
    cal [3]=new String[30]; 
    cal [4]=new String[31]; 
    cal [5]=new String[30]; 
    cal [6]=new String[31]; 
    cal [7]=new String[31]; 
    cal [8]=new String[30]; 
    cal [9]=new String[31]; 
    cal [10]=new String[30]; 
    cal [11]=new String[31]; 
} 

またはメインメソッドまたは任意の静的メソッド内で初期化できます。

public static String[][] cal = new String[12][]; 
    public static void main(String args[]){ 
    cal [0]=new String[31]; 
    cal [1]=new String[28]; 
    cal [2]=new String[31]; 
    cal [3]=new String[30]; 
    cal [4]=new String[31]; 
    cal [5]=new String[30]; 
    cal [6]=new String[31]; 
    cal [7]=new String[31]; 
    cal [8]=new String[30]; 
    cal [9]=new String[31]; 
    cal [10]=new String[30]; 
    cal [11]=new String[31]; 
    } 

またはあなたは、静的ブロック

public static String[][] cal = new String[12][]; 
static 
{ 
    cal [0]=new String[31]; 
    cal [1]=new String[28]; 
    cal [2]=new String[31]; 
    cal [3]=new String[30]; 
    cal [4]=new String[31]; 
    cal [5]=new String[30]; 
    cal [6]=new String[31]; 
    cal [7]=new String[31]; 
    cal [8]=new String[30]; 
    cal [9]=new String[31]; 
    cal [10]=new String[30]; 
    cal [11]=new String[31]; 
} 
関連する問題