有关如何排列结果以使其看起来像乘法表的任何想法? 这是一个来自学校的项目,老师希望我们探索格式化代码的不同方法。任何想法将不胜感激。
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(" | ");
}
}
还有其他人同意我的感觉就像第4周对于嵌套循环和课程(上一课)来说有点早吗?也许我只是不知所措。
答案 0 :(得分:1)
我想提供一些示例和文档,而不是提供代码:
我认为这就是你要找的东西:
http://examples.javacodegeeks.com/core-java/lang/string/java-string-format-example/
另请参阅Oracle的文档:
http://docs.oracle.com/javase/tutorial/java/data/numberformat.html
您应该搜索的关键字是&#39; java formatter&#39;
阅读完这些链接之后,您可能想知道printf方法和格式方法有什么区别,这里是答案:
答案 1 :(得分:0)
使用String#format
或System.out.printf
生成格式化输出,例如
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(" | ");
}
...输出
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 |
请查看Java For Complete Beginners - formatted strings以获取有关格式限定符
的更多详细信息