有没有办法将我的输出从ToStringBuilder
转换回java对象?
由于某种原因,我需要将一些String
转换为object
,这些字符串由ToStringBuilder
从java对象转换。
[homeRequest=HomeRequest[homeDate=Tue Mar 10 07:58:17 CST 2015,homeInfo=[HomeInfo[ipId=<null>,name=Test]]]]
HomeRequest
是一个对象,HomeInfo
是一个对象。
答案 0 :(得分:0)
您可以使用正则表达式来拆分值。
String line = "[homeRequest=HomeRequest[homeDate=Tue Mar 10 07:58:17 CST 2015,homeInfo=[HomeInfo[ipId=<null>,name=Test]]]]";
Pattern pat = Pattern.compile("^.*HomeRequest\\[homeDate=([^,]*),.*HomeInfo\\[ipId=([^,]*),name=([^\\]]*).*");
Matcher m = pat.matcher(line);
if (m.find()) {
String homeDate = m.group(1);
String ipId = m.group(2);
String name = m.group(3);
...
// create new instances of the objects
}
正则表达式的解释:
^.*HomeRequest\\[homeDate=
- 匹配从行首到homeDate=
([^,]*)
- 匹配未指定数量的字符在第一个,
之前停止,以后可以通过组索引访问该组1
,.*HomeInfo\\[ipId=
- 从,
到任意字符的匹配
([^,]*)
- 匹配未指定数量的字符,在第一个,
之前停止,以后可以通过组索引访问该组2
,name=
- 匹配文字子字符串
([^\\]]*)
- 匹配未指定数量的字符在第一个]
之前停止,以后可以通过组索引访问该组3
.*
- 匹配所有后续字符
有关正则表达式的进一步说明,请查看regex101.com。在那里你会找到并完整解释上面的例子。