2014-02-16 103 views
0
String[][] aS= new String[16][3]; 

String[] s0 ={"FIELD0", "FIELD1", "FIELD2"}; 
String[] s1 ={"FIELD0", "FIELD1", "FIELD2"}; 
String[] s2 ={"FIELD0", "FIELD1", "FIELD2"}; ... 
String[] s15 ={"FIELD0", "FIELD1", "FIELD2"}; 

for(int i=0;i<aS.length;i++) 
{ 
    for(int j=0;j<3;j++) 
    { 
     //error! 
     aS[i][j]= s+"i"+[j]; //s0[0],s0[1]...s15[3] 
    } 
} 

林熟悉多維數組,即時通訊只是不ABOT弄清楚該部分如何被固定:「S +的」 i「+ [J];」[爪哇]環內聲明多維數組

編輯:[錯誤]令牌「+」,表達希望此令牌

+0

你得到哪些錯誤? – Zavior

+1

你不能那樣做。 – SLaks

+0

在令牌「+」上出現語法錯誤,在此令牌 – Zen

回答

1

你不能這樣做,在Java中(在大多數編程語言),它不支持動態命名後 語法錯誤。

如果你想使用s0s1或任何其他數組,你應該寫它,例如:

所有的Java ​​
+0

之後預期會產生表達式,但之後我必須繼續對s0,s1,s2進行查找;手動。我標記他們希望我可以改變0,1,2 ...在一個循環內的數字 – Zen

+0

考慮使用'%'操作符.. – Maroun

+0

這將如何工作?我不熟悉那 – Zen

1

首先,你不能創建的動態變量名稱。所以

aS[i][j]= s+"i"+[j]; //s0[0],s0[1]...s15[3] 

是不正確

String[][] aS= new String[16][3]; 

這意味着可以有各種尺寸的每個陣列中3即3字符串16個1D字符串陣列。

for(int i=0;i<aS.length;i++) 
{ 
     aS[i]= yourArray //s0[0],s0[1]...s15[3] 
} 

這裏yourArray應該是string []有大小3類似於您的S0 - S15。

,或者你可以做

for(int i=0;i<aS.length;i++) 
{ 
    for(int j=0;j<3;j++) 
    { 
     aS[i][j]= "FIELD" + j; 
    } 
} 
+0

我試過這樣做:aS [i] [j] =「s」+ i [j];現在的錯誤是:「表達式的類型必須是數組類型,但它解析爲int」 – Zen

1

如果你想初始化多維數組你可以做這樣的:

String[][] aS = { {"FIELD0", "FIELD1", "FIELD2"}, 
        {"FIELD0", "FIELD1", "FIELD2"}, 
        {"FIELD0", "FIELD1", "FIELD2"}, 
        ... 
        {"FIELD0", "FIELD1", "FIELD2"} }; 
+0

yup,創建單獨的數組只是看起來整潔,我想我會與此如果循環不可能:) – Zen