【问题标题】:How do I create a table using 2D array in Java?如何在 Java 中使用二维数组创建表?
【发布时间】:2021-10-04 12:50:07
【问题描述】:

嗨 :)

我需要为电影院的座位和行创建一个表格(如图片中的那个),但我不知道如何在左侧打印行号。我已经设法将座位和桌子上方的数字放在一起,但我未能在左侧添加带有数字的列。也许你们能给我一些建议?这是代码!

Scanner scanner = new Scanner(System.in);
int row = scanner.nextInt();
int seat = scanner.nextInt();

char[][] array = new char[row][seat];

System.out.print("  ");
for (int i = 1; i < seat + 1; i++)
    System.out.print(i + " ");
    
System.out.println();

for (int i = 0; i < array.length; i++) {
    System.out.print("  ");
    for (int j = 0; j < array[i].length; j++)
        System.out.print('S' + " ");

    System.out.println();
}

【问题讨论】:

    标签: java multidimensional-array


    【解决方案1】:

    这更像是简单的编程问题而不是 java 问题。使用了许多丑陋的解决方案,但会尽量遵循您使用的约定。

    逐步考虑您正在使用的数组和循环。第一个循环

    for (int i = 1; i < seat + 1; i++) {
            if (i == 1) {
                System.out.print("  ");
            }
            System.out.print(i + " ");
    }
    

    从 0 开始计数是首选方式,但此循环仅用数字填充第一行。

    在第二个循环中,i 仍然是你的行计数器,j 只是一个列计数器:

    for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                if (j == 0) {
                    System.out.print("  ");
                }
                System.out.print('S' + " ");
            }
        System.out.println();
    }
    

    您的问题确实是:如何在第一列中逐行写入数字。使用您刚刚提供的代码对此有一个简单的答案。在您的代码中,如果列 j 等于 0,那么您现在只是在写空白,但是您想写行号 i。我希望这会给你一个线索。尝试自己解决。如果您仍然无法做到,那么:

    将第二个循环中第二个的 if 正文更改为 System.out.print(i + " ");

    【讨论】:

      猜你喜欢
      • 2013-05-08
      • 2012-12-06
      • 2013-11-22
      • 2011-02-12
      • 2013-05-02
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      相关资源
      最近更新 更多