我需要从字符串中提取信息并将其存储在表格中,我现在认为属性是一个不错的选择,但不幸的是我无法完成它。我的代码如下:
String st1 = "module name="rootFS1" version="0.1.0" public_cle="0" type="0"";
String st2 = "module name="rootFS2" version="0.1.1" public_cle="1" type="1"";
StringReader sb1 = new StringReader(st1);
Properties module1 = new Properties();
module.load(sb1);
StringReader sb2 = new StringReader(s2t);
Properties module2 = new Properties();
module.load(sb2);
List<ModuleInfo> modInfoList;
modInfoList.set(1, module1.getProperty("name")); // it doesnot work already here, syntax error
modInfoList.set(1, module1.getProperty("version"));
modInfoList.set(1, module1.getProperty("public_cle"));
modInfoList.set(1, module1.getProperty("type"));
modInfoList.set(2, module2.getProperty("name"));
modInfoList.set(2, module2.getProperty("version"));
modInfoList.set(2, module2.getProperty("public_cle"));
modInfoList.set(2, module2.getProperty("type"));
return modInfoList;
有谁能让我更好地完成这项任务?非常感谢提前!
答案 0 :(得分:0)
您正尝试将getProperty()
的返回值插入List<ModuleInfo>
,而List<ModuleInfo> modInfoList;
ModuleInfo moduleInfo = new ModuleInfo();
moduleInfo.setName(module, module1.getProperty("name"));
moduleInfo.setVersion(module, module1.getProperty("version"));
moduleInfo.setPublicCle(module, module1.getProperty("public_cle"));
moduleInfo.setType(module, module1.getProperty("type"));
modInfoList.add(moduleInfo);
moduleInfo = new ModuleInfo();
moduleInfo.setName(module, module2.getProperty("name"));
moduleInfo.setVersion(module, module2.getProperty("version"));
moduleInfo.setPublicCle(module, module2.getProperty("public_cle"));
moduleInfo.setType(module, module2.getProperty("type"));
modInfoList.add(moduleInfo);
的类型不同。试试这个:
List<ModuleInfo> modInfoList;
ModuleInfo moduleInfo = buildModuleInfo(module1);
modInfoList.add(moduleInfo);
moduleInfo = buildModuleInfo(module2);
modInfoList.add(moduleInfo);
更好的是,将创建ModuleInfo的代码拉出到您在Properties对象中传递的辅助方法中,然后调用它两次:
{{1}}
答案 1 :(得分:0)
您的字符串应使用“\ n”作为分隔符,以便加载属性
String st1 = "module name=\"rootFS1\" version=\"0.1.0\" public_cle=\"0\" type=\"0\"";
String[] array = StringUtil.split(st1.split(" ", 2)[1], ' ');
Properties module1 = new Properties();
module1.load(new StringReader(StringUtils.join(array, "\n")));
Map<Integer, String> modInfoList = new HashMap<Integer, String>();
modInfoList.put(1, module1.getProperty("name"));