【发布时间】:2014-09-19 19:21:28
【问题描述】:
我想像这样转换String myString:
[ ["cd",5,6,7], ["rtt",55,33,12], ["by65",87,87,12] ]
转为ArrayList<CustomClass>
CustomClass 有构造函数:
public CustomClass (String name, int num1, int num2, int num3)
我首先尝试创建ArrayList of Strings:
List<String> List = new ArrayList<String>(Arrays.asList(myString.split("[")));
对我没用...
我怎样才能得到这样的东西:
List - {CustomClass,CustomClass,CustomClass,CustomClass}
第一个CustomClass = CustomClass.name="cd" , CustomClass.num1=5,CustomClass.num2=7...
第二个CustomClass = CustomClass.name="rtt",CustomClass.num1=55,CustomClass.num2=55...
等等……
【问题讨论】:
-
“对我没用...” 怎么没用?你期望从你的 split 命令中得到什么与你实际得到的不同?当您的对象数据用逗号分隔时,为什么首先要拆分“[”?
-
另外,自定义解析并不是世界上最简单的事情。有什么方法可以让你的输入字符串以 JSON 等通用格式提供给你?然后,您可以使用现成的解析器(例如 Gson)来构建您的对象。
-
我添加了我想要得到的结果 - 一个 List ob objects
-
String#split()返回String的数组。无法从该函数中获取List<CustomClass>。您将需要编写某种解析器/构建器。 -
您是否考虑过编写自己的简单解析器(检查您是否在嵌套的
[...]中,读取以,分隔的每个字段,直到找到关闭的])。你的正则表达式可以为你省去很多麻烦。
标签: java collections