我正在尝试使用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;
}
答案 0 :(得分:1)
很难说出你想要完成的事情。您发布了不匹配的花括号的事实并没有帮助。
但基本上,填充所有数组元素的double应该是:
for(m = 0; m < people.size(); m++){
for(n = 0; n < people.get(m).getNames().length; n++){
namesGrid[m][n] = ?????????;
}
}
你必须填写表达式。 (也许可以在赋值之上添加一些代码来帮助计算。)
那么在分配数组元素时我们有什么信息?我们知道m
和n
是什么 - namesGrid
数组的行和列。看起来它们也是某些people
对象中对象的“行”和“列”。 (看起来people
有几个名单,people.get(i)
给你一个名单?我不确定。)
但由于我们已经知道people
的行号和列号,即m
和n
,我们可以使用这些来访问people
中的数据。我们不需要额外的for
循环来做到这一点。或者,以另一种方式看待它:您需要遍历namesGrid
的所有元素,并且需要遍历所有people
,,但是您正在迭代它们时间因为两个结构的形状大致相同,可以这么说。当您使用m
和n
来迭代namesGrid
时,他们也在迭代people
。因此,您不需要额外的循环来遍历people
。
所以摆脱这两个额外的i
和j
循环,只需使用m
和n
来获取名称:
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();
}