HashMap m = new LinkedHashMap();
System.out.println("ajax middlepage academefindnav.jsp : " + result);
Console输出:
middlepage academefindnav.jsp : {111学院=[], 2222学院=[], 3333学院=[], 4444学院=[], 55=[], www=[], 某某学院=[44], 法学院=[法律系, 国际法系], 公共管理学院=[社会学系, 行政管理系, 哲学系, 政治学系], 国际汉语文化学院=[对外汉语系(外), 中文系(外)], 化学化工学院=[化工系, 化学系, 制药工程系], 继续教育学院=[], 教育科学学院=[教育技术系, 教育学系, 心理学系, 学前教育系], 历史文化学院=[历史文化系], 旅游学院=[酒店管理系, 旅游管理系], 美术学院=[美术学系, 艺术设计学系], 人民武装学院=[], 商学院=[管理学系, 金融学系, 经济学系, 营销与贸易系], 生命科学学院=[动物学系, 生物化学系, 微生物学系, 遗传发育系, 植物学系], 树达学院=[], 数学与计算机科学学院=[电子商务系, 计算机科学系, 数学系, 信息与计算科学系], 体育学院=[体育健康与社会体育学系, 体育教育系, 运动训练系], 外国语学院=[朝鲜语系, 俄语系, 日语系, 英语系], 文学院=[对外汉语系, 中文系], 物理与信息科学学院=[电子信息工程系, 物理系, 信息技术系], 新闻与传播学院=[编辑出版系, 广播电视新闻系, 广告系, 新闻系], 医学院=[护理系, 基础医学系, 临床医学系, 药学系, 医学检验系, 预防医学系], 音乐学院=[音乐系], 职业技术学院=[电子信息工程系(职), 服装设计系, 机械工程系, 装潢设计系], 资源与环境科学学院=[地理信息工程系, 地理学系, 土地科学系, 资源环境与城乡规划管理系]}将{}内的字符串(包括"{"和"}")格式化为:
111学院,2222学院,3333学院,4444学院,55,www,某某学院 44,法学院 法律系 国际法系,公共管理学院 社会学系 行政管理系 哲学系 政治学系,国际汉语文化学院 对外汉语系(外) 中文系(外),化学化工学院 化工系 化学系 制药工程系,......即每个map值之间用逗号分割开,所有的values之间以及与key之间用空格分开(在上面就是每个学院之间用逗号分开,学院内部的values用空格分开)请诸位帮我一把,谢谢!!!

解决方案 »

  1.   

    建议遍历map一个一个拼凑字符串的好
    不知道你的Map里存的是什么类型的数据,感觉像是String[]StringBuilder buf = new StringBuilder();
    for (Map.Entry entry : m) {
        buf.append(entry.getKey());
        Object o = entry.getValue();
        if (o == null) {
            //buf.append(",");
            //continue;
        } else if (o instanceof String[]) {
            String[] s = (String[])o;
            if (s.length == 0) {
                //buf.append(",");
                //continue;
            } else {
            
                for (String ss : s) {
                    buf.append(" ").append(ss);
                }
                //buf.append(",");
            }
        } else {
            
        }
        buf.addpend(",");
    }
    buf.delete(buf.length-1, buf.length);
    String result = buf.toString();如果非要用正则表达式String result = m.toString();
    String regex1 = "\\[.*?\\]"; //最好用[]的unicode形式,即\\uxxxx,现在没环境没办法知道unicode
    Pattern p = Pattern.compile(regex1);
    Matcher mt = p.match(result);
    while (mt.find()) {
        String s = mt.group();
        result = result.replaceAll(s, s.replaceAll(",", " "));
    }
    result = result.replaceAll("=[", " ");
    result = result.replaceAll("], ", ",");
    result = result.replaceAll("{", ""); //{最好用\\u007B
    result = result.replaceAll("}", ""); //}最好用\\u007D,这两个常用,所以能记住
      

  2.   

    (昨天累了睡得早没及时回帖,10点半我就去休息了)
    Map中:
     Key: String类型,  values:List类型
    m.toString打印出来就是上面的结果.for (Map.Entry entry : m) {//这句IDE在m处提示:"Can only iterate over an array or an instanse of java.lang.Iterable";
      

  3.   

    我洒\采用了一楼的建意,拼凑字符串:String s="";
    String s1="";
    String s2="";
    AcademeDAO ad = new AcademeDAO();
    DepartmentDAO dd = new DepartmentDAO();
    List anames = ad.findanames();
    for(int i = 0;i < anames.size();i++){
    s1 = (String)anames.get(i);
    List dnames = dd.finddnamesbyaid(s1);
    if(dnames.isEmpty()){
    continue;
    }
    s+=s1;
    for(int j = 0;j<dnames.size();j++){
    s2 = dnames.get(j).toString();
    s+=" "+s2;
    }
    s+=",";
    }
      

  4.   


    笔误了
    改为for (Map.Entry entry : m.entrySet())