【问题标题】:How to format toString() method with "\n"?如何用“\n”格式化 toString() 方法?
【发布时间】:2020-10-07 22:54:32
【问题描述】:

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

我的标准是根据订购的人数有以下多个输出:

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

我希望如果该人没有订购任何东西,“商品名称”部分会消失并且不包括 "\n"

输出示例:

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

我的输出按以下方式执行所有操作,除了当该人没有订购任何东西时它会创建一个新行。您可以在下面看到第一个订单在价格和总价之间有一个空格。

我的输出:

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;       
}

【问题讨论】:

  • 看起来你的班级有一个项目列表,你的 toString 将它们连接在一起。您可以这样做,但更传统的方法是让每个 Order 对象返回一个较小的 toString,然后通过迭代在外部打印它们。可能会返回一个订单列表。
  • Price: $"Price in double" - 货币不应使用floatdouble 表示。

标签: java formatting format newline tostring


【解决方案1】:

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

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

【讨论】:

  • 或者,稍微重新排列一下,一个 if 语句。
猜你喜欢
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 2016-06-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多