Java:如何将1d string / int数组表示为2d int数组?

时间:2013-09-28 00:18:14

标签: java arrays

// 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();
        }
    }
}

3 个答案:

答案 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'值,这会让你在填充数组之前耗尽值。