【问题标题】:Convert objects in ArrayList to String将 ArrayList 中的对象转换为字符串
【发布时间】:2019-12-02 23:59:49
【问题描述】:

我正在尝试从已放置在 ArrayList 中的对象返回连接字符串。

public String displayProperties() {
    StringBuilder propertyList = new StringBuilder();
    properties.forEach(propertyList::append);
    String e = propertyList.toString();
    return e;
}

当我返回 e。我得到一个对象引用。

属性定义为:

List<House> properties = new ArrayList <House>();

【问题讨论】:

  • 您必须在将List 中的每个元素附加到StringBuilder 之前“转换”它。 House 是否实现了toString
  • 问题是..?
  • @jacob13smith 这实际上是有效的 Java 代码
  • @MadProgrammer 不幸的是没有。这可以通过遍历列表中的每个对象然后将 toString() 添加到每个对象来实现吗?
  • @Daniele 道歉。我正在尝试打印一个字符串,其中包含列表中 House 对象中的每个变量。

标签: java string arraylist


【解决方案1】:

我不确定您是否会如人群所建议的那样对覆盖toString() 感到满意。但是,如果您想这样做,那就直截了当,让我们假设:

class House{
        final String road;
        final int houseNumber;

         House(String road, int houseNumber) {
             this.road = road;
             this.houseNumber = houseNumber;
         }

         @Override
         public String toString() {
             return "House{" +
                     "road='" + road + '\'' +
                     ", houseNumber=" + houseNumber +
                     '}';
         }
     }

这里被覆盖的是来自类Object 的方法toString(),它是一切的根源(在Java 编程语言中)。但请注意,如果这是House 的唯一字符串表示形式,那么就业务需求而言,您可能会遇到麻烦。或者,当需要第二次代表时,您最近会遇到麻烦。

例如,如果您想从House 打印更合理的内容,您可以这样做。 (\r\n ... 回车/换行):

        List<House> houses = new ArrayList<House>();
        String ad = houses.stream()
                .map(h -> String.format("We're excessively proud to present you house nr %d at %s road\r\n", h.houseNumber, h.road))
                .reduce("", (i, j) -> i + j);

StringBuilder 版本是这样的:

StringBuilder sb = new StringBuilder();
for(House h: houses)
{
    sb.append(String.format("We're insanely proud to present you house nr %d at %s road\r\n", h.houseNumber, h.road));
}
String ad = sb.toString();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-26
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 2019-09-04
    • 2012-04-28
    • 2011-09-13
    • 1970-01-01
    相关资源
    最近更新 更多