将2d数组分成区域

时间:2014-08-07 11:41:41

标签: java arrays

我想将2D数组分成4个区域。我已经使用5x5阵列完成了它。可以用10x10做到吗?在过去的5个小时里,我一直在挠头。这是我的5x5:

char array1 [][] = new char [5][5];

    for(int k = 0; k < array1.length; k++)
    {
        for(int j = 0; j < array1[k].length; j++)
        {
            array1[k][j] = 'E';

            System.out.print(array1[k][j] + " ");

        }
        System.out.print("|" + " ");


        for(int j = 0; j < array1[k].length; j++)
        {
            array1[k][j] = 'E';

            System.out.print(array1[k][j] + " ");

        }

        System.out.println();
    }
    int line = 1;
    while(line<=22){System.out.print('-'); line++;}
    System.out.println();

    for(int k = 0; k < array1.length; k++)
    {
        for(int j = 0; j < array1[k].length; j++)
        {
            array1[k][j] = 'E';

            System.out.print(array1[k][j] + " ");

        }
        System.out.print("|" + " ");

        for(int j = 0; j < array1[k].length; j++)
        {
            array1[k][j] = 'E';

            System.out.print(array1[k][j] + " ");

        }

        System.out.println();
    }

我甚至尝试使用增强的for循环,但事情变得更加复杂。

抱歉,我不够清楚。我的意思是,我发布的代码已经给出了我想要的输出。但我想知道我是否可以使用10x10 2D阵列获得相同的输出。 (10x10 2D阵列,分为4个区域,每个区域为5x5)

2 个答案:

答案 0 :(得分:0)

你的代码工作得很好。变化:

array1[5][5]

通过

array1[10][10]

while(line<=22){System.out.print('-'); line++;}

通过

while (line <= (array1[0].length*2+1)*2){System.out.print('-'); line++;}

正如你所说,你搜索了5个小时,我认为你必须更清楚问题描述。

答案 1 :(得分:0)

如果您的目标是打印漂亮的图像,将其划分为四个部分,就像您的代码一样,您可以使用该代码:

int size = 10;
for (int i = 0; i < size * 2; i++) {
    if (i == size) {
        for (int j = 0; j <= size * 4; j++) {
            System.out.print("-");
        }
        System.out.println();
    }
    for (int j = 0; j < size * 2; j++) {
        if (j == size) System.out.print("| ");
        System.out.print("E ");
    }
    System.out.println();
}

将变量'size'更改为您需要的任何大小。