Java中使用toString的新行
我正在尝试创建一个toString方法,它返回一个人的姓名、地址和电话号码。 我想要的输出格式如下所示: 安娜·布朗 甜蜜道1234号 加利福尼亚州洛杉矶,99999 电话:888.888.888 地址是加利福尼亚州洛杉矶斯威特路1234号,邮编99999,但我希望这个城市有一条新的线路。 我试过了,但没用。有人能帮我吗Java中使用toString的新行,java,Java,我正在尝试创建一个toString方法,它返回一个人的姓名、地址和电话号码。 我想要的输出格式如下所示: 安娜·布朗 甜蜜道1234号 加利福尼亚州洛杉矶,99999 电话:888.888.888 地址是加利福尼亚州洛杉矶斯威特路1234号,邮编99999,但我希望这个城市有一条新的线路。 我试过了,但没用。有人能帮我吗 public String toString() { return String.format( "%-25s\n %-14s\n\n\n%-25s",
public String toString()
{
return String.format( "%-25s\n %-14s\n\n\n%-25s",
name,address, phone );
}
这个地址似乎既有街道地址也有城市地址。如果希望以不同的方式对待它们,则需要将它们放在单独的变量中。否则,地址必须包含街道和城市之间的\n。我认为您需要按如下方式分隔字段添加地址2或在地址行中添加“\n”
static class Address {
Address(String name, String address, String address2, String phone) {
this.name = name;
this.address = address;
this.address2 = address2;
this.phone = phone;
}
String name;
String address;
String address2;
String phone;
public String toString() {
return String.format("%s%n%s%n%s\nPhone: %s",
name, address, address2, phone);
}
}
public static void main(String[] args) {
String name="Anna Brown";
String address="1234 Sweet Road";
String address2="Los Angeles, CA 99999";
String phone="888.8888.888";
System.out.print(new Address(name, address, address2, phone));
}
输出
Anna Brown
1234 Sweet Road
Los Angeles, CA 99999
Phone: 888.8888.888
无论平台如何,上述方法都会写出正确的行尾。请详细说明行尾不起作用,以便我们更好地了解您的代码和问题。您可能应该将城市与地址分开。此外,根据您查看输出的方式,您可能需要回车字符\r@Insertusernamehere或者只是使用。-我永远不会说它不起作用。始终描述什么不起作用、你期望什么、你得到了什么,并将适用于该问题的任何消息或输出值复制/粘贴到你的问题中。嗨,Elliott,我应该提到,用户将输入有关姓名、地址和电话的信息。我按照您的代码操作,但结果如下:输入客户名称:安娜·布朗输入客户地址:加利福尼亚州洛杉矶市甜蜜路1234号输入客户电话:888.888.888安娜·布朗1234甜蜜路\nLos Angeles,CA 99999电话:888.8888。888@brownEyes如果用户以单个字符串的形式输入地址,那么您必须从城市、州和邮政编码中解析出街道地址,这在一般情况下是不可能的,如果它是一个外来地址。最好让用户单独输入。