Reputation: 2982
I'm creating an output in Java using printf()
to create table headers. One of the columns needs variable width.
Basically it should look like this:
//two coords
Trial Column Heading
1 (20,30)(30,20)
//three coords
Trial Column Heading
1 (20,40)(50,10)(90,30)
I tried to use:
int spacing = numCoords * 7; //size of column
printf("Trial %*^s", column, "Column Heading");
But I keep getting output errors when I try to use *
or ^
in the conversion statement.
Does anyone have any idea what the correct formatting string should be?
Upvotes: 4
Views: 37472
Reputation: 47913
Use StringUtils.center from the Commons Lang library:
StringUtils.center(column, "Column Heading".length());
Upvotes: 6
Reputation: 33936
Java does not support the "*" format specifier. Instead, insert the width directly into the format string:
int spacing = numCoords * 7; //size of column
System.out.printf("Trial %" + spacing + "s", "Column Heading");
Upvotes: 3