2017-11-19 1 views
0

Dies ist meine Frage bezüglich der Positionierung der Zeichenfolge in der toString Methode: , d. H. Der "Gewinn verdient" Teil separat. Ich weiß, dass dies erreicht werden kann durch eine separate showProfit() Methode, aber die Frage erlaubt es nicht. Alles muss nur mit der toString() Methode angezeigt werden.Positionierung in toString() -Methode, Java

public String toString(){ 
    String str = String.format("%-10s", drinkID); 

    str += String.format("%15s%.2f", "Cost Price: $",drinkCostPrice); 
    str += String.format("%20s%.2f", "Selling Price: $", drinkSellPrice); 
    str += String.format("%18s%d", "Quantity Sold: ", drinkQuantitySold); 
    str += String.format("\nProfit Earned for %s:$%.2f", drinkID, computeProfit()); 
    return str; 
} 

Welche Ausgänge:

latte  Cost Price: $2.00 Selling Price: $3.50 Quantity Sold: 30 
    Profit Earned for latte:$45.00 
    mocca  Cost Price: $2.00 Selling Price: $4.00 Quantity Sold: 30 
    Profit Earned for mocca:$60.00 
    espresso Cost Price: $1.00 Selling Price: $3.00 Quantity Sold: 20 
    Profit Earned for espresso:$40.00 

Aber was ich ausgeben möchte, ist dies:

latte  Cost Price: $2.00 Selling Price: $3.50 Quantity Sold: 30 
    mocca  Cost Price: $2.00 Selling Price: $4.00 Quantity Sold: 30 
    espresso Cost Price: $1.00 Selling Price: $3.00 Quantity Sold: 20 

    Profit Earned for latte:$45.00 
    Profit Earned for mocca:$60.00 
    Profit Earned for espresso:$40.00 

das heißt, die "Profit verdient" separat Teil.

Wie kann dies ohne eine andere Funktion durchgeführt werden?

+0

und auch, um den Gesamtgewinn anzuzeigen. Wie mache ich das, ohne eine neue Methode zu erstellen? –

+0

Hallo, editiere neue Informationen/weitere Details in die Frage, nicht die Kommentare. Und Sie müssen nicht die gleichen Informationen unten im Code wiederholen, wie Sie oben in der Frage haben. Das "ich weiß, dass dies erreicht werden kann ........" kann von unten entfernt werden. – QHarr

Antwort

0

eine while-Schleife können Sie durch Ihre Drink[] oder <List>Drink zu erhalten auszuführen:

latte Cost Price: $2.00 Selling Price: $3.50 Quantity Sold: 30 mocca Cost Price: $2.00 Selling Price: $4.00 Quantity Sold: 30 espresso Cost Price: $1.00 Selling Price: $3.00 Quantity Sold: 20
Dann eine zweite while-Schleife zu durchlaufen sie wieder zum Ausdrucken der Gewinn einbrachte. Sie können all dies in einer Methode tun.