在Java中使用toString的新行

时间:2014-07-29 20:43:26

标签: java

我正在尝试创建一个toString方法,该方法返回一个人的姓名,地址和电话号码。 我想要的输出格式如下:

Anna Brown

1234 Sweet Road

洛杉矶,CA 99999

电话:888.8888.888

地址是1234 Sweet Road Los Angeles,CA 99999,但我希望这个城市在一个新的路线。 我试过这个,但它不起作用。请有人帮帮我吗?

public String toString()
{

  return String.format( "%-25s\n %-14s\n\n\n%-25s",
                            name,address, phone );
}

2 个答案:

答案 0 :(得分:2)

地址似乎包含街道地址和城市。如果您希望对它们进行不同的处理,您会希望将它们放在单独的变量中。否则,地址必须包含街道和城市之间的\ n。

答案 1 :(得分:0)

我认为您需要将字段分开(如下面添加地址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

无论平台如何,上述方法都会写出正确的行结尾。

相关问题