Luther Bell
Luther Bell

Reputation: 11

Multiplication Table Output

I was wondering how I could align this code properly? So that it could look more like a table. In the output, the numbers start shifted to the right and I do not know how to fix it

public class MultiplicationTable {

    int[][] arr = new int[13][13];

    public void initializeBoard()
    {
        for(int i = 1; i < 13; i ++)
        {
            for(int j = 1; j < 13; j++)
            {
                arr[i][j] = i * j;
            }
        }
    }


    public void printBoard()
    {
        for(int i = 1; i < 13; i ++)
        {
            for(int j = 1; j < 13; j++)
            {
                System.out.print(arr[i][j] +"   ");
            }

            System.out.println();
        }

    }

}

Upvotes: 1

Views: 49

Answers (2)

Rahal Danthanarayana
Rahal Danthanarayana

Reputation: 748

You have done it almost correctly. I believe with a smaller change in your printBoard() method like this should make the out put correctly

public static void printBoard()
    {
        for(int i = 1; i < 13; i ++)
        {
            for(int j = 1; j < 13; j++)
            {
                if(arr[i][j] >= 100){
                    System.out.print(arr[i][j] +" ");
                } else if(arr[i][j] >= 10){
                    System.out.print(arr[i][j] +"  ");
                } else {
                    System.out.print(arr[i][j] +"   ");
                }

            }

            System.out.println();
        }

    }

And I got the output like this mutiplication table

I hope this helps.

Upvotes: 1

DevilsHnd - 退した
DevilsHnd - 退した

Reputation: 9192

Use the Scanner#printf() method to display formatted text within the Console window, for example:

public void printBoard() {
    for (int i = 1; i < 13; i++) {
        for (int j = 1; j < 13; j++) {
            System.out.printf("%-6s", arr[i][j]);
        }
        System.out.println();
    }
}

The Console should display:

1     2     3     4     5     6     7     8     9     10    11    12    
2     4     6     8     10    12    14    16    18    20    22    24    
3     6     9     12    15    18    21    24    27    30    33    36    
4     8     12    16    20    24    28    32    36    40    44    48    
5     10    15    20    25    30    35    40    45    50    55    60    
6     12    18    24    30    36    42    48    54    60    66    72    
7     14    21    28    35    42    49    56    63    70    77    84    
8     16    24    32    40    48    56    64    72    80    88    96    
9     18    27    36    45    54    63    72    81    90    99    108   
10    20    30    40    50    60    70    80    90    100   110   120   
11    22    33    44    55    66    77    88    99    110   121   132   
12    24    36    48    60    72    84    96    108   120   132   144   

Upvotes: 1

Related Questions