首页 > 解决方案 > 如何在 Java 中打印二维锯齿状数组周围的边框

问题描述

我需要在像这样的二维锯齿状数组周围放置一个边框:

{' ', ' ', ' '}
{' ', ' ', ' '}
{' ', ' ', ' ', ' '}
{' ', ' ', ' ', ' '}
{' ', ' ', ' ', ' ', ' '}

要打印如下所示的内容:

*****
*   *
*   *
*    *
*    *
*     *
*******

我想我从第一行开始:

for (int i = 0; i < a.length; i++) {
          System.out.print('*');          
    }

但我被难住了(如果它甚至是正确的)。我怎么能在数组的维度之间打印?

谢谢

标签: javaarrays

解决方案


我们可以通过打印上边框,然后打印中间内容,最后打印下边框来处理这个问题。这里的诀窍是我们实际上不必担心超出数组的索引。对于模式的中间部分,我们只是迭代数组的边界,并在两侧附加一个边框。除了第一个和最后一个锯齿状一维数组的大小外,顶部和底部边框实际上并不涉及数组内容。

for (int i=0; i <= array[0].length + 1; ++i) {
    System.out.print("*");
}
System.out.println();

for (int r=0; r < array.length; ++r) {
    System.out.print("*");
    for (int c=0; c < array[r].length; ++c) {
        System.out.print(array[r][c]);
    }
    System.out.println("*");
}

for (int i=0; i <= array[array.length-1].length + 1; ++i) {
    System.out.print("*");
}

*****
*   *
*   *
*    *
*    *
*     *
*******

推荐阅读