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]);
output:
1. Newspaper $1.00 2. Paper Back $7.50 3. Hardcover book $10.00 4. Electronic book $2.00 5. Magazine $3.00
The simplest way to properly space your output in Java is by adding manual spacing. For instance, to output three different integers, "i," "j" and "k," with a space between each integer, use the following code: System. out.
"%5d" Format a string with the required number of integers and also pad with spaces to the left side if integers are not adequate. "%05d" Format a string with the required number of integers and also pad with zeroes to the left if integers are not adequate.
%s refers to a string data type, %f refers to a float data type, and %d refers to a double data type.
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]);
Format String Syntax: http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax
Formatting Numeric Print Output: https://docs.oracle.com/javase/tutorial/java/data/numberformat.html
PS: This could go as a comment to DwB's answer, but i still don't have permissions to comment and so answering it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With