[在Java中使用printf打印列表

问题描述 投票:0回答:1

我正在尝试使用Java中的printf打印列表。如何将这些专栏互相移动?

[目前,我正在获取: “”

但这是我想要的: “”

这是我的代码

import java.util.Scanner;

public class LabTimeTable{

   public static void main(String [] args){
   Scanner input = new Scanner(System.in);

   System.out.println("Time Table:");

   System.out.print("Number (1-10): ");
   int number1 = input.nextInt();
   int number2 = (number1+1);
   int number3 = (number2+1);
   int number4 = (number3+1);
   int number5 = (number4+1);
   int number6 = (number5+1);
   int number7 = (number6+1);
   int number8 = (number7+1);
   int number9 = (number8+1);
   int number10 = (number9+1);


      for(int i = 1; i < 11; i++){

         System.out.printf("%2d * %2d = %2d", i, number1, (number1*i));
         System.out.printf("%10d * %2d = %2d", i, number2, (number2*i));
         System.out.printf("%10d * %2d = %2d", i, number3, (number3*i));
         System.out.printf("%10d * %2d = %2d", i, number4, (number4*i));
         System.out.printf("%10d * %2d = %2d", i, number5, (number5*i));
         System.out.printf("%10d * %2d = %2d", i, number6, (number6*i));
         System.out.printf("%10d * %2d = %2d", i, number7, (number7*i));
         System.out.printf("%10d * %2d = %2d", i, number8, (number8*i));
         System.out.printf("%10d * %2d = %2d", i, number9, (number9*i));
         System.out.printf("%10d * %2d = %2d", i, number10, (number10*i));
         System.out.println();

      }


   }
java formatting printf rows
1个回答
0
投票

printf不会在输出末尾添加换行符,因为您可能应该使用%n

接下来,您需要在两列之间保留一些空格,可以通过使用%10s轻松建立,其中10是您希望两列分离的字符数。

此后,您只需要决定是否要在一个语句中做所有事情...

System.out.printf("%2d * %2d = %2d%10s%2d * %2d = %2d%n", index, multiplier, (multiplier * index), "", index, multiplier + 1, ((multiplier + 1) * index));

或使用多个语句...

System.out.printf("%2d * %2d = %2d", index, multiplier, (multiplier * index));
System.out.printf("%10s%2d * %2d = %2d%n", "", index, multiplier + 1, ((multiplier + 1) * index));

可运行的示例...

public class Test {

    public static void main(String[] args) {

        int multiplier = 1;
        for (int index = 1; index < 11; index++) {
            //System.out.printf("%2d * %2d = %2d%10s%2d * %2d = %2d%n", index, multiplier, (multiplier * index), "", index, multiplier + 1, ((multiplier + 1) * index));
            System.out.printf("%2d * %2d = %2d", index, multiplier, (multiplier * index));
            System.out.printf("%10s%2d * %2d = %2d%n", "", index, multiplier + 1, ((multiplier + 1) * index));
        }

    }
}
© www.soinside.com 2019 - 2024. All rights reserved.