当前位置:   article > 正文

算法 分割字符串为实体类

算法 分割字符串为实体类

题目

在这里插入图片描述

String userData = "10000:张三:男:1998-01-01#10001:张三:男:1998-01-01#10002:李四:女:1999-02-02#10003:王五:男:2000-03-03#10004:赵六:女:2001-04-04";
String[] usersArray = userData.split("#");
// 使用Stream API将字符串数组转换为SysUser对象数组
List<SysUser> users = new ArrayList<>();
Arrays.stream(usersArray).forEach(user -> {
    String[] userArray = user.split(":");
    // date format
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    SysUser sysUser = new SysUser(userArray[0], userArray[1], userArray[2], formatter.parse(userArray[3], LocalDate::from));
    users.add(sysUser);
});
// 打印输出
users.forEach(System.out::println);

// 获取每个名字各自的数量 使用Map封装
Map<String, Long> idCountMap = users.stream().collect(Collectors.groupingBy(SysUser::getName, Collectors.counting()));
System.out.println(idCountMap);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

User类

@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class SysUser {
    private String id;
    private String name;
    private String gender;
    private LocalDate birthday;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号