将数组输出格式化为9x9框

时间:2014-07-10 23:20:35

标签: java arrays

我必须为我的班级编写一个程序来创建一个9x9乘法表。我已经将程序编写到数字正确的位置,但我不知道如何将其格式化为输出在9x9框中的位置。感谢您的帮助。

import java.io.*;
import java.util.Scanner;
public class MultTable
{
 public static void main(String[]args)
 {
  Scanner input = new Scanner(System.in);
  int multTableSize = 9;
  int[][] multTable = new int[multTableSize][multTableSize];

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

3 个答案:

答案 0 :(得分:1)

首先,您要在两个循环外添加换行符,而不是在第一个循环的末尾添加换行符,其次,对于文本格式设置,最好使用printf()而不是println()

尝试这样的事情:

    for (int row = 0; row < multTable.length; row++) {
        for (int column = 0; column < multTable[row].length; column++) {
            multTable[row][column] = (row + 1) * (column + 1);
            System.out.printf("%3d", multTable[row][column]);
        }
        System.out.println();
    }

%3d是一个格式字符串,可以使您的数字显示在3个字符的宽列中 请参阅Formatter类文档以了解有关如何使用Java格式化输出的更多信息。

答案 1 :(得分:0)

也许使用System.out.println();在你的内循环之后?

答案 2 :(得分:0)

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

在第二次循环结束后 - &gt;你需要跳过一行......