首页 > 解决方案 > 如何从字符串实体中检索指定数据

问题描述

我有一些解析的价值,例如:

Student{id=19, groupId=1, firstName='Alex', lastName='Sparrow'}

我想解析这个字符串并获取新的 Arraylist,它将具有1,Alex,Sparrow.

只有这个数据。

即使有其他对象,我也想制作通用解析器Group{id=22, groupName="BKS",groupCity="Moscow"};

我也将能够解析它并获取 List BKS,groupCity,Moscow

也许我可以使用 StringBuilder 但我不确定。

标签: javastringstringbuilder

解决方案


如果您只想获取属性值。您可以考虑按键值解析。

Student{id=19, groupId=1, firstName='Alex', lastName='Sparrow'}

获取 {} 中的字符串

id=19, groupId=1, firstName='Alex', lastName='Sparrow'

然后用 "," 分割,你会得到 key=value 的数组。

使用循环继续通过 = 分割键和值

for(string item: data.split(",")){
    String[] keyValues = item.split("=")
    String key = keyValues[0];
    String value = keyValues[1];
}

如果您想转换为 DTO 或 Pojo,您将有更多步骤将键值转换为对象字段。

您可以使用 java 反射按名称设置字段的值。

https://www.oracle.com/technical-resources/articles/java/javareflection.html


推荐阅读