字符串中的Java数组名称

时间:2014-11-15 16:45:37

标签: java arrays

下面的代码有一个运行方法,它接受一个columnNumber。 我有3个不同的数组:col1,col2和col3在顶部初始化,每个数组中有4个元素。

让我们说在run方法中,我传入一个2的int值。所以,我希望“s [0] = 500”为“col2 [0] = 500”。

那么,有没有办法通过传入一个整数值来指定我想要的int数组?

例如,我输入3然后“s [0] = 500”将是“col3 [0] = 500”

public class Array {

static int[] col1 = {1, 2, 3, 4};  
static int[] col2 = {1, 2, 3, 4};
static int[] col3 = {1, 2, 3, 4};


public static void run(int columnNumber) {



    String string = Integer.toString(columnNumber);

    String s = "col" + string;

    s[0] = 500;

3 个答案:

答案 0 :(得分:2)

您不能(轻松)动态引用变量名称。你可能想要的是一个数组数组:

static int[][] cols = {
    {1, 2, 3, 4},
    {1, 2, 3, 4},
    {1, 2, 3, 4}
};

public static void run(int columnNumber) {
    cols[columnNumber - 1][0] = 500;
}

我使用columnNumber - 1因为数组索引是从0开始的。因此,如果您致电run(1),它会修改colscols[0])中的第一个数组。

答案 1 :(得分:0)

这个怎么样?

static int[][] columns = { 
                        { 1, 2, 3, 4 },
                        { 1, 2, 3, 4 },
                        { 1, 2, 3, 4 }, 
                        { 1, 2, 3, 4 } 
                        };

public static void run(int columnNumber) {

    columns[columnNumber][0] = 500;

}

答案 2 :(得分:0)

我建议你可以使用switch语句。

switch(columnNumber){
      case 1:
          col1[0]=500;
          break;
      case 2:
          col2[0]=500 ;
          break;
      case 3:
          col3[0]=500; 
          break;  
}