java - 如何用“\n”格式化 toString() 方法?
问题描述
我有一个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;
}
解决方案
您可以使用三元条件\n
仅在必要时显示:
return app + ": Order #" + number + "\nCustomer: " +
name + "\nBrand: " + brand + "\nPrice: $" +
price + "\n" + (item.length() > 0 ? item + "\n" : "") + "Total Price: $" + sum;
推荐阅读
- arm - qemu-system-aarch64:-device ramfb:“ramfb”不是有效的设备型号名称
- php - 带有消息“没有这样的文件或目录”的 mysqli_sql_exception
- permissions - 为什么 git 需要 sudo 权限才能克隆,如果需要,写入根目录?
- http - 带有图像附件的 Julia HTTP POST 请求
- javascript - 在 Angular 表单验证器中使用变量
- c - 函数重载不适用于 c 中的命名空间(结构)
- linux - 如何在 Yocto 中正确构建 mDNS?
- javascript - 意外的标识符 为什么它不起作用?
- python - Python FPDF忽略封面页中的页眉和页脚
- javascript - 无法实例化类并将其添加到数组中 - 对象属性始终为 0?