簡體   English   中英

我試圖用初始化的列值聲明一個二維數組,但下面的代碼給出了“不是語句錯誤”

[英]I am trying to declare an 2d array with initialized column values but the following code gives "not a statement error"

在java中初始化二維數組的以下聲明有什么問題?

String[][] un=new String[n2]{"a","0","0"};

n2 是一個初始化變量。

你可以這樣做:

String[] const_arr = {"a", "0", "0"};
String[][] un = new String[n2][const_arr.length];
for (int i = 0; i < n2; i++) {
    for (int j = 0; j < const_arr.length; j++) {
        un[i][j] = const_arr[j];
    }
}

PS:我不明白矩陣un的用途,因為它只包含一個常量數組。 就個人而言,我認為您應該重構代碼以僅使用const_arr而不是創建此矩陣。

首先,語法不正確(不能將變量放在括號內)。 其次,同時使用維度表達式和初始化的數組初始化是非法的。

二維數組的直接聲明是:

    String[][] un=new String[][]{{"1", "2", "3"},{"a","0","0"}};

要獲得您想要的東西,您可以嘗試以下操作:

    String[] n2 = new String[] {"1", "2", "3"};
    String[][] un = new String[][]{n2,{"a","0","0"}};

但如果你希望數組是這樣的:{[a,b,c],[a,b,c],......[a,b,c]},即行數應該是n2 變量的值,則:

    String[] n2 = new String[] {"1", "2", "3"};
    String[][] un = new String[n2.length][];
    for (int i=0; i<un.length; i++) {
        un[i] = n2;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM