日期:2014-05-20  浏览次数:20810 次

java中如何将一段字符串按照特定分隔符将其字段值保存在map、table或list中,然后后面通过key获取到对应的value?
RT:java中如何将一段字符串按照特定分隔符将其字段值保存在map、table或list中,然后后面通过key获取到对应的value?
如:以下字符串,想要的是按照一个一个字段映射关系将其存储到map或list中,通过key(如:field1)能获取到value(aaa)值。
field1=aaa, field2=null, field3=<bbb>, field3=http://test
------解决方案--------------------
这个不就是分割的事情吗
------解决方案--------------------
先按逗号分隔,得到String[] strArr1,然后遍历strArr1按=号分隔,map.put(等号前内容,等号后内容);
------解决方案--------------------

String str="field1=aaa, field2=null, field3=<bbb>, field3=http://test";
String[] sArr=str.split(",");
Map<String,List<String>> map=new HashMap<String,List<String>>();
for(String s:sArr){
//针对你这里有重复key的情况不让其覆盖原key的内容而是添加到原key内容上
  String[] ss=s.split("=");
  String key=ss[0];
  String value=ss[1];
  List<String> list=map.get(key);
  if(list==null){
     list=new ArrayList<String>();
  }
  list.add(value);
  map.put(key, list);
}
System.out.println(map);

------解决方案--------------------
功能实现是关键,好不好是代码优化问题。