繁体   English   中英

java8 流连接映射输出到字符串返回 java.util.stream.ReferencePipeline

[英]java8 stream concatenate map output to string return java.util.stream.ReferencePipeline

嗨,我想从对象蒸汽中提取和格式化属性,并将它们连接到一个新字符串中。

前任

public class User{
   public User(String name, String lastname){
      this.name = name;
      this.lastname = lastname;
   }
   public String name;
   public String lastname;
}


List<User> memberNames = new ArrayList<>();
memberNames.add(new User("john", "rush");
memberNames.add(new User("peter", "gabriel");

String users = "";

users += memberNames.stream().map(user ->{return String.format("The user name is %s and his lastname is %s\n", user.name, user.lastname); });

但是当我尝试打印用户字符串时

logger.info(users);

我得到

java.util.stream.ReferencePipeline$3@396555a1

代替

The user name is john and his lastname is rush
The user name is peter and his lastname is gabriel

提前致谢

java.util.stream.ReferencePipeline$3@396555a1

是尝试打印您创建的Stream直到执行map操作的结果。

您希望collect映射到现在的用户名,同时使用\\n分隔符加入 then。

String users = memberNames.stream()
        .map(user -> String.format("The user name is %s and his lastname is %s", user.name, user.lastname))
        .collect(Collectors.joining("\n"));
System.out.println(users); // to print them all at once

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM