[Java]在循环内声明多维数组

时间:2014-02-16 14:02:52

标签: java arrays multidimensional-array

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]
    }
}

我熟悉多维数组,我只是不知道如何修复这部分:“s +”i“+ [j];”

编辑:[错误] 令牌“+”上的语法错误,此令牌后面的表达式

3 个答案:

答案 0 :(得分:1)

你不能用Java(在大多数编程语言中)这样做,它不支持动态命名

如果您想使用s0s1或任何其他数组,您应该编写它,例如:

aS[i][j]= s0[j];

答案 1 :(得分:1)

首先,在Java中,您无法创建变量的动态名称。所以

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

不正确

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

这意味着您可以拥有16个1D String数组,每个数组大小为3,即每个数组中有3个字符串。

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;
    }
}

答案 2 :(得分:1)

如果您想初始化 多维数组,可以这样做:

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