因此,我尝试使用两个foreach循环迭代2d字符串数组,并将所有值设置为默认字符串。但是,我必须在混淆foreach语法。我已经尝试了两种方法,但都没有用。我应该放弃并只使用常规的for循环吗?
import java.util.ArrayList;
public class Test{
String[][] table;
table = new String[11][6];
for(String[] x:table) {
for(String z:x) {
z="asd";}}
}
因此,此时的问题是Java只是重新定义了循环变量,而没有触及实际的数组。因此,我尝试将其放入第二个循环:
table[x][z]="asd";
哪个都不起作用,因为这些都没有指向int。所以我想我的问题是: 是否可以使用foreach循环本身的循环变量将java指向它在foreach循环中当前位于的索引?我是否使用类似getIndex()的东西?还是我只需要在每个循环中添加一个int变量并对其进行++编码就可以拥有索引?
答案 0 :(得分:2)
foreach返回只读值,因此这就是第一种方法不起作用的原因。 您可以使用for代替foreach。
for(int i = 0; i < table.length; i++) {
for(int j==0; j<table[i].length; j++) {
table[i][j]="asd";
}
}
如果要使用foreach,可以将索引分开保存。我不明白你为什么会这么做。
int i=0;
int j;
for(String[] x:table) {
j=0;
for(String z:x) {
table[i][j]="asd";
j++;
}
i++;
}