[英]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.