如何将字符串变量值分配给2d数组

时间:2017-07-08 23:34:12

标签: java arrays string

我正在尝试使用String值填充二维数组。

int m; N;在我的循环中用于分配行和列。

在内部循环中,我从单独的字符串数组中提取字符串,并将每个值分配给字符串变量。然后我试图将该字符串变量分配给2d字符串数组。

String variable =特定索引处的字符串数组中字符串的值;

String[m][n] example =  variable;

似乎工作正常,除了它似乎没有将字符串变量中的字符串加载到2d数组中。

任何人都可以帮助我理解为什么会这样,以及我如何成功地将数据分配给二维阵列?

for(m = 0; m < people.size(); m++){
        for(n = 0; n < people.get(m).getNames().length; n++){

            for(int i = 0; i < people.size(); i ++){
                for(j = 0; j < people.get(i).getNames().length; j++){
                    String name = people.get(i).getNames()[j];

                }
        NamesGrid [m][n] =  name;

        }

2 个答案:

答案 0 :(得分:1)

很难说出你想要完成的事情。您发布了不匹配的花括号的事实并没有帮助。

但基本上,填充所有数组元素的double应该是:

for(m = 0; m < people.size(); m++){
    for(n = 0; n < people.get(m).getNames().length; n++){
        namesGrid[m][n] = ?????????;
    }
}

你必须填写表达式。 (也许可以在赋值之上添加一些代码来帮助计算。)

那么在分配数组元素时我们有什么信息?我们知道mn是什么 - namesGrid数组的行和列。看起来它们也是某些people对象中对象的“行”和“列”。 (看起来people有几个名单,people.get(i)给你一个名单?我不确定。)

但由于我们已经知道people的行号和列号,即mn,我们可以使用这些来访问people中的数据。我们不需要额外的for循环来做到这一点。或者,以另一种方式看待它:您需要遍历namesGrid的所有元素,并且需要遍历所有people,但是您正在迭代它们时间因为两个结构的形状大致相同,可以这么说。当您使用mn来迭代namesGrid时,他们也在迭代people。因此,您不需要额外的循环来遍历people

所以摆脱这两个额外的ij循环,只需使用mn来获取名称:

String name = people.get(m).getNames()[n];

如果这不是您真正想要的,请编辑您的问题并提供更多详细信息。此外,按照惯例,变量名称以Java中的小写字母开头,因此我在答案中更改了namesGrid

答案 1 :(得分:0)

尝试使用两个for循环遍历2d数组。下面是一些示例代码,它通过for循环并为每个元素分配一个字符串。     String [] [] names = new String [14] [10];

    for(int rows = 0; rows < names.length; rows++) {
        for(int cols = 0; cols < names[0].length; cols++) {
            names[rows][cols] = "Strings!";
        }
    }

    for(int rows = 0; rows < names.length; rows++) {
        for(int cols = 0; cols < names[0].length; cols++) {
            System.out.print(names[rows][cols]);
        }
        System.out.println();
    }