Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to center string output using printf() and variable width?

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?

like image 729
Khan Avatar asked Oct 20 '25 11:10

Khan


2 Answers

Use StringUtils.center from the Commons Lang library:

StringUtils.center(column, "Column Heading".length());
like image 120
Behrang Avatar answered Oct 23 '25 02:10

Behrang


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");
like image 23
Brett Kail Avatar answered Oct 23 '25 01:10

Brett Kail



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!