6

In C, the printf function has a great wildcard feature, where you can use an asterisk where you would normally place an int that specifies minimum column width. So you can go

#DEFINE COL_WIDTH 20;  

up in the preprocessor directives, and then later you can put

printf("%*s", COL_WIDTH, myString);

to print myString in a 20 character column.

This asterisk trick doesn't seem to be implemented in Java. I have to go

printf("%20s", myString); 

instead. This is a flagrant magic number, especially if you are trying to use printf to do something like build a table where you want an easy way to change the column width on a lot of lines at once. So,

  • is there something I'm missing about printf in Java that makes what I want to do possible, or

  • is there a neat and more Java-like way of formatting text for output in a table without using magic numbers?

Makoto
  • 104,088
  • 27
  • 192
  • 230

1 Answers1

0

printf("%"+COL_WIDTH+"s", myString);

WOUNDEDStevenJones
  • 5,150
  • 6
  • 41
  • 53