str="001,A001|002,A002|003,A003"
帮忙写个函数吧str存储到map里。001为key,A002为value,以“|”分开

解决方案 »

  1.   


    import java.util.HashMap;
    import java.util.Map;
    public class Test {
    public static void main(String[] args) {
    String str="001,A001|002,A002|003,A003";
    Map<String,String> map = new HashMap<String,String>();
    parse(map,str);
    System.out.println(map);
    }

    /**
     * 解析字符串str,并将结果存入map
     * @param map 保存结果的map
     * @param str 得解析的字符串
     */
    private static void parse(Map<String,String> map, String str) {
    String[] temp = str.split("\\|");
    for(int i=0; i<temp.length; i++) {
    int index = temp[i].indexOf(",");
    map.put(temp[i].substring(0, index), temp[i].substring(index+1));
    }
    }
    }
      

  2.   

    Map map = new HashMap();
    String str="001,A001|002,A002|003,A003";

    String s1[] = str.split("\\|");
    String s2[];
    for(int i = 0;i<s1.length;i++){
    s2 = s1[i].split(",");
    if(s2!=null)
    map.put(s2[0], s2[1]);
    }
    System.out.println(map);
      

  3.   

    先用|分割将字符串分成3个子串,然后对每个子串使用,分割,得到key和value,放入map中就可以了
      

  4.   

    package test;import java.util.HashMap;
    import java.util.Map;public class Test { /**
     * @param args
     */
    public static void main(String[] args) {
    String str="001,A001|002,A002|003,A003";
    String [] strArray = str.split("\\|");
    Map<String,String> map = new HashMap<String,String>();
    for (int i = 0; i < strArray.length; i++) {
    String [] itemArray = strArray[i].split(",");
    if(itemArray.length == 2) {
    map.put(itemArray[0], itemArray[1]);
    }
    }
    System.out.println(map.size());
    }}
      

  5.   

    楼主,平时多看看API。这就是用到了String中的一些方法而已。
      

  6.   

    import java.util.HashMap;public class StrToMap {
    private HashMap<String,String> datas = new HashMap<String,String>(0);

    public String[] getData (String arg0){
    return arg0.split("\\|");
    } public void addToMap(String arg0) {
    String[] data = arg0.split("\\,");
    datas.put(data[0], data[1]);
    }

    public static void main(String[] args) {
    String str="001,A001|002,A002|003,A003";
    StrToMap stm = new StrToMap();
    String[] datas = stm.getData(str);
    for (String data : datas) {
    stm.addToMap(data);
    }
    System.out.print(stm.datas);
    }
    }