user1781482 user1781482 - 1 year ago 149
Java Question

Align printf output in Java

I need to display a list of items with their prices from an array and would like to align the prices. I almost have it working but needs improvements. Below is the code and the output. Any ideas how to make all prices aligned? So far some work but some don't. Thanks in advance.

//for loop
System.out.printf("%d. %s \t\t $%.2f\n",
i + 1, BOOK_TYPE[i], COST[i]);


1. Newspaper $1.00
2. Paper Back $7.50
3. Hardcover book $10.00
4. Electronic book $2.00
5. Magazine $3.00

Answer Source

You can try the below example. Do use '-' before the width to ensure left indentation. By default they will be right indented; which may not suit your purpose.

System.out.printf("%2d. %-20s $%.2f\n",  i + 1, BOOK_TYPE[i], COST[i]);


PS: This could go as a comment to DwB's answer, but i still don't have permissions to comment and so answering it.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download