首页 > 解决方案 > 格式化输出中出现意外的空白

问题描述

任务:打印正方形和立方体值的表格。预期输出:

number  square  cube
4       16      64  
5       25      125  
6       36      216  
7       49      343  
8       64      512  
9       81      729  
10      100     1000  

使用 System.out.printf,我制作了一个与预期输出几乎相似的表格,但是立方体列中有多余的空格。

int a,b;
Scanner input = new Scanner(System.in);
a = input.nextInt();
b = input.nextInt();
System.out.println("number  square  cube");
while(a<=b) {
    System.out.printf("%d %8d %8d  \n", a, a*a, a*a*a);
    a++;
}

我的输出:

number  square  cube
4       16       64  
5       25      125  
6       36      216  
7       49      343  
8       64      512  
9       81      729  
10      100     1000  

标签: javaformatoutput

解决方案


改变

System.out.printf("%d %8d %8d  \n", a, a*a, a*a*a);

System.out.printf("%-7d %-7d %-7d\n", a, a*a, a*a*a);

没有其他变化,对于 4 到 10 的范围,我得到

number  square  cube
4       16      64     
5       25      125    
6       36      216    
7       49      343    
8       64      512    
9       81      729    
10      100     1000   

推荐阅读