繁体   English   中英

如何用“\n”格式化 toString() 方法?

[英]How to format toString() method with "\n"?

我有一个toString()方法,它返回有关在线订购的信息。 这将返回此人的姓名、此人正在购物的品牌、他们所购买商品的价格、总价以及是否有货。

我的标准是根据有多少人订购以下多个 output:

Amazon: Order #1001
Customer: "Name"
Brand: "Seller"
Price: $"Price in double"
"Name of item"
Total Price: $"Price in double"

我想要这样,如果此人什么都不点,“项目名称”部分就会消失,并且不包括"\n"

Output 示例:

Amazon: Order #1002
Customer: Jane Doe
\nBrand: Nike
Price: $0.0
Total Price: $0.0

Amazon: Order #1001
Customer: Jane Doe
Brand: Nike
Price: $94.04
Nike Air Max 97
Total Price: $94.04

Amazon: Order #1001
Customer: Jane Doe
Brand: Nike
Price: $86.90
Nike Revolution 5
Total Price: $180.94

我的 output 执行以下所有操作,除了当此人未订购任何东西时它会创建一个新行。 您可以在下面看到这一点,其中第一个订单在价格和总价之间有一个空格。

我的 output:

Amazon: Order #1002
Customer: Jane Doe
Brand: Nike
Price: $0.0

Total Price: $0.0

Amazon: Order #1001
Customer: Jane Doe
Brand: Nike
Price: $94.04
Nike Air Max 97
Total Price: $94.04

Amazon: Order #1001
Customer: Jane Doe
Brand: Nike
Price: $86.90
Nike Revolution 5
Total Price: $180.94

这是我的toString()方法:

public String toString() {
    String item = "";
    for(int i = 0; i < size; i++) {
        s += s[i];
        if(i < currentNumOrders - 1) {
            item += "\n";
        }
    }  

    return app + ": Order #" + number + "\nCustomer: " + 
           name + "\nBrand: " + brand + "\nPrice: $" + 
           price + "\n" + item + "Total Price: $" + sum;       
}

您可以使用三元条件仅在必要时显示\n

return app + ": Order #" + number + "\nCustomer: " + 
           name + "\nBrand: " + brand + "\nPrice: $" + 
           price + "\n" + (item.length() > 0 ? item + "\n" : "") + "Total Price: $" + sum;  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM