我需要将此String转换为POJO。请告诉我我该怎么办
这只是一个例子
Anne12F02PhysicsPassChemistryPassFirstClass
这是字符串..现在我需要将其转换为pojo
我的POJO看起来像这样
Class student {
String Name;
int age;
char sex;
List<Subject> subList;
String classiness;
}
Class subject {
String subject;
String result;
}
这只是一个例子。
字符串中的02表示列表的大小。
注意:: 并且每个属性的长度也是预定义的(例如..名称10个字符..如果名称中只有5个字符,则附加空格)
列表可能会再次包含一个列表,长度将显示
答案 0 :(得分:0)
您需要在String上使用substring来获取所有不同的元素。然后,您需要使用Integer.parseInt
和类似的函数将字符串转换为您需要的类型,然后最后使用计算的变量构造您的POJO。
此外,如果其中一个元素是一个列表(它是),那么您将需要创建一个ArrayList并添加每个元素,具体取决于需要解析的列表的大小。
因此,样本将是(假设您的输入字符串被称为toPojo
)
String name = toPojo.substring(0, 10);
int age = Integer.parseInt(toPojo.substring(10, 12));
由于这是家庭作业,请尝试完成休息......
编辑:跟进
获取列表,执行类似
的操作// get size of list and loop from zero to the size of the list
// find the index of the first item in the list
// int index = startIndex + loop*itemLength
// toPojo.substring(index, index+sizeOfElement);
答案 1 :(得分:0)
如果预定义了属性的长度,则可以使用方法String.substring(int, int)
检索每个属性,然后从解析的值中创建POJO。类似于以下代码片段:
String input = "Anne12F02PhysicsPassChemistryPassFirstClass";
String name = input.substring(0, NAME_LENGTH); // name length is predefined
String age = input.substring(NAME_LENGTH, NAME_LENGTH + AGE_LENGTH);
// and so on
Student s = new Student(name, Integer.parseInt(age));
答案 2 :(得分:0)
如果你的字符串有可变长度,你可能想在字符串本身之前写字符串长度,或者在字段之间使用一些分隔符,比如逗号或管道字符。