Any ideas on how to line up my results so it looks like a Multiplication Table?
This is a project from school and the teacher wants us to explore different ways to format our code. Any ideas will be greatly appreciated.
public class MultiplicationTableBuilder {
public static void main(String[] args) {
System.out.println(" 1 2 3 4 5 6 7 8 9 10 ");
System.out.println("----------------------------------------");
// Nested For loops to build multiplication table
for(int number1 = 1; number1 <= 10; number1++)
{
System.out.printf(number1 + " |");
for(int number2 = 1; number2 <= 10; number2++)
{
System.out.printf(" " + (number1 * number2));
}
System.out.println(" | ");
}
}
Also does anyone else agree with me on feeling like Week 4 is a little early for nested loops and classes (last lesson)? Maybe I'm just getting overwhelmed.
Use String#format
or System.out.printf
to generate formatted output, for example
System.out.printf("%5s %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d%n", "", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
System.out.println("-------------------------------------------------");
// Nested For loops to build multiplication table
for (int number1 = 1; number1 <= 10; number1++) {
System.out.printf("%3d | ", number1);
for (int number2 = 1; number2 <= 10; number2++) {
System.out.printf("%3d ", (number1 * number2));
}
System.out.println(" | ");
}
Output...
1 2 3 4 5 6 7 8 9 10
-------------------------------------------------
1 | 1 2 3 4 5 6 7 8 9 10 |
2 | 2 4 6 8 10 12 14 16 18 20 |
3 | 3 6 9 12 15 18 21 24 27 30 |
4 | 4 8 12 16 20 24 28 32 36 40 |
5 | 5 10 15 20 25 30 35 40 45 50 |
6 | 6 12 18 24 30 36 42 48 54 60 |
7 | 7 14 21 28 35 42 49 56 63 70 |
8 | 8 16 24 32 40 48 56 64 72 80 |
9 | 9 18 27 36 45 54 63 72 81 90 |
10 | 10 20 30 40 50 60 70 80 90 100 |
Take a look at Java For Complete Beginners - formatted strings for more details about the format qualifiers
Instead of providing the code, I want to point you to some examples and documentations:
I think this is what you are looking for:
http://examples.javacodegeeks.com/core-java/lang/string/java-string-format-example/
Also have a look at the documentation from Oracle:
http://docs.oracle.com/javase/tutorial/java/data/numberformat.html
The keyword you should be searching for is 'java formatter'
After reading these links, you might wonder what is the difference between the printf method and the format method, here is the answer:
System.out.printf vs System.out.format