Wie zu verwenden-Formatierung mit printf korrekt in Java

Ich versuche, erstellen Sie ein einfaches Programm, um in drei Elemente, deren Mengen und Preise und fügte hinzu, Sie alle zusammen, um eine einfache Eingang-Typ-format. Mein professor gab mir ein bestimmtes format für die Quittung, wo alle Dezimalzahlen line-up und konsequent platziert. Es sollte so Aussehen.

Your Bill:


Item                           Quantity       Price         Total
Diet Soda                            10        1.25         12.50
Candy                                1         1.00          1.00
Cheese                               2         2.00          4.00


Subtotal                                                    17.50
6.25% Sales Tax                                              1.09
Total                                                       18.59

Mein professor angegeben, es sollte 30 Zeichen für den Namen, 10 für Menge und Einzelpreis und den Gesamtpreis. Dies zu tun, ich habe mit der printf-Methode. Ich bin versucht zu formatieren Sie es mit diesem code bisher.

import java.util.Scanner;
class AssignmentOneTest {

    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);

        //System.out.printf("$%4.2f for each %s ", price, item);
        //System.out.printf("\nThe total is: $%4.2f ", total);

        //process for item one
        System.out.println("Please enter in your first item");
        String item = kb.nextLine();
        System.out.println("Please enter the quantity for this item");
        int quantity = Integer.parseInt(kb.nextLine());
        System.out.println("Please enter in the price of your item");
        double price = Double.parseDouble(kb.nextLine());

        //process for item two
        System.out.println("Please enter in your second item");
        String item2 = kb.nextLine();
        System.out.println("Please enter the quantity for this item");
        int quantity2 = Integer.parseInt(kb.nextLine());
        System.out.print("Please enter in the price of your item");
        double price2 = Double.parseDouble(kb.nextLine());
        double total2 = quantity2 * price2;
        //System.out.printf("$%4.2f for each %s ", price2, item2);
        //System.out.printf("\nThe total is: $%4.2f ", total2);

        //process for item three
        System.out.println("Please enter in your third item");
        String item3 = kb.nextLine();
        System.out.println("Please enter the quantity for this item");
        int quantity3 = Integer.parseInt(kb.nextLine());
        System.out.println("Please enter in the price of your item");
        double price3 = Double.parseDouble(kb.nextLine());
        double total3 = quantity3 * price3;
        //System.out.printf("$%4.2f for each %s ", price3, item3);
        //System.out.printf("\nThe total is: $%4.2f ", total3);

        double total = quantity * price;

        double grandTotal = total + total2 + total3;
        double salesTax = grandTotal * (.0625);
        double grandTotalTaxed = grandTotal + salesTax;

        String amount = "Quantity";
        String amount1 = "Price";
        String amount2 = "Total";
        String taxSign = "%";

        System.out.printf("\nYour bill: ");
        System.out.printf("\n\nItem");
        System.out.printf("%30s", amount);
        //System.out.printf("\n%s %25d %16.2f %11.2f", item, quantity, price,
        //total);
        //System.out.printf("\n%s %25d %16.2f %11.2f", item2,quantity2, price2,
        //total2);
        //System.out.printf("\n%s %25d %16.2f %11.2f", item3,quantity3, price3,
        //total3);

        System.out.printf("\n%s", item);
        System.out.printf("%30d", quantity);
        System.out.printf("\n%s", item2);
        System.out.printf("\n%s", item3);

        System.out.printf("\n\n\nSubtotal %47.2f", grandTotal);
        System.out.printf("\n6.25 %s sales tax %39.2f", taxSign, salesTax);
        System.out.printf("\nTotal %50.2f", grandTotalTaxed);    
    }
}

Wenn ich geben Sie in einer längeren item-Namen, verschiebt es die Platzierung und Menge, Preis und Summe.
Meine Frage ist, wie mache ich einen "Startpunkt setzen" mit einer begrenzten Breite mit printf, bitte um Hilfe.

InformationsquelleAutor user1808763 | 2013-01-19
Schreibe einen Kommentar