Неожиданный пробел в форматированном выводе - PullRequest
0 голосов
/ 03 февраля 2019

Задача: распечатать таблицу значений квадратов и кубов.Ожидаемый вывод:

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  

1 Ответ

0 голосов
/ 03 февраля 2019

Изменить

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   
...