我正在尝试使用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();
}
}
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));
}
}
}