如何使用printf以某种格式打印出来

时间:2017-03-21 19:37:06

标签: java printing printf

如何使用命令printf以相同的方式在附加的输出文件中打印输出?

how to use printf to output in this format?

这是我目前的代码:

else if (args[0].equals("fib")) {
    for (int i = 0; i < (Integer.parseInt(args[1]) + 1); ++i) {
         System.out.println(getFib(i));
    }
} 

如何更改它以使其像附图一样打印? 谢谢你们的帮助!

1 个答案:

答案 0 :(得分:0)

这是一个例子。

而不是即时打印将所有数字添加到列表中:

List<Integer> numbers = new ArrayList<>();

for (int i = 1; i <= number; i++) {
    numbers.add(fibonacci(i));
}

然后为printf()创建一个模式:

String pattern = "%" + (numbers.get(numbers.size()-1).toString().length() + 10) + "d";

其中(numbers.get(numbers.size()-1).toString().length() + 10)是最大数字中的字符数加上列之间的10个空格的总和。

然后打印列表的所有元素。需要计数器才能拥有不超过6列:

int counter = 0;
        for (Integer integer : numbers) {
            if (counter == 6) {
                System.out.println(" ");
                counter = 0;
            }

            System.out.printf(pattern, integer);

            counter++;
        }