前台传过来的数据为(横线中间部分)
id   answer
----------------------------
234:A
234:B
234:C
235: A
----------------------------
Enumeration en = request.getParameterNames();
while(en.hasMoreElements())
{
 String name = en.nextElement().toString();
 String values[] = request.getParameterValues(name);
 for(int j=0; j<values.length; j++)
  {
   
  }使用枚举类型接收问题:判断是否重复,重复合并答题项处理后效果如下
-------------------------------
234:A、B、C
235:A
-------------------------------
注:搜索了半天也没找到。是不是枚举类型不能判断重复元素呀

解决方案 »

  1.   

    我想你只可能 ABCD这些是枚举, 不可能 234 235是枚举类型吧?
    但这里应该是找 234 235 这样的ID重复啊
      

  2.   

    这个和枚举没关系吧
    request.getParameterNames()这个知识返回所有参数名
    这个应该你先做一下处理,再根据名字拿值
      

  3.   


     Enumeration en= request.getParameterNames();//从前台获取数据 形如 234:A 234:B 235:B
     List<String> type1=new ArrayList<String>();//定义集合作为筛选重复项
     while(en.hasMoreElements())//遍历枚举
     {
       String name = en.nextElement().toString();//获取枚举元素 234 234 235
       String answers="";//定义中间变量
       String values[] = request.getParameterValues(name); //获取枚举对应的值A B B
       for(int j=0; j<values.length; j++){
            type1.add(name); //向集合中添加元素
            if(type1.contains(name))//判断是否重复
              {
                  answers+=values[j]+"、";//重复就将对应的值合并
              }else{
                  type1.add(name);//不重复继续添加
              }
            }
            type1.clear();//循环结束清空集合)  此时获取的值A、B、和B、
             answers=answers.substring(0,answers.length()-1);//此时获取的值A、B和B 
            System.out.println(name+":"+answers); //此时获取的值234:A、B和235:B
        } 
      

  4.   


    我说,你还不如用set,用list又要遍历一次
      

  5.   

      List只是中间过渡一下 得到结果后作为参数传入处理方法里面就ok了