// Java:如何将1d string / int数组表示为2d int数组?我非常感谢你的帮助。
package intro;
public class ArrayTest{
public static void main(String[] args) {
int arr[][]= new int[4][4];
int month_days [] = {31,28,31,30,31,30,31,31,30,31,30,31,13,14,15,16};
int size =4;
//System.out.println(size);
for (int i = 0, k = 0; i < size; i++, k++) {
for(int j=0; j <size; j++){
arr[i][j]= month_days[k++];
//System.out.println(month_days[k++] + " ");
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
答案 0 :(得分:5)
您经常增加k
。你在for循环中增加它,在这里:month_days[k++]
从for循环中删除增量:
for (int i = 0, k = 0; i < size; i++)
答案 1 :(得分:1)
将arr[i][j] = month_days[k++];
更改为arr[i][j] = month_days[k];
k++
的每个实例都将k递增1.目前,你在for
循环的每次迭代中递增两次,所以在第8次迭代之后,它正在寻找第17个元素month_days[]
arr[][]
month_days[]
,但{{1}}没有那么多元素。
答案 2 :(得分:0)
您已在此行中递增'k'变量: 数组month_days [K ++];
您也不需要在此行中增加它: for(int i = 0,k = 0; i&lt; size; i ++, k ++ ){
基本上,每次循环运行时都会丢弃一个'k'值,这会让你在填充数组之前耗尽值。