How to center string output using printf() and variable width?
32,543
Solution 1
Use StringUtils.center from the Commons Lang library:
StringUtils.center(column, "Column Heading".length());
Solution 2
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");
Author by
Khan
Updated on June 13, 2021Comments
-
Khan almost 3 years
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?