如何遍历request.getParameterMap()里面的值。
request.getParameterMap()这个返回的是一个map,我用map的键去取值用的是:
Map map = new HashMap();
map = request.getParameterMap();
String a = map.get("account_code").toString();
System.out.println(a);
运行结果:
[Ljava.lang.String;@17a7706
也就是说MAP里的值仍然是对象。
然后我改为:String a = String.valueOf(map.get("account_code"));
但是运行结果依然是这个。
我通过DEBUG看到这个map里面能够找到正确的键值对。但是就是遍历不出来。请问这个问题如何解决?
------解决方案--------------------map.get("account_code") 得到的是数组
String[] xx = (String[])map.get("account_code");
String a = String.valueOf(xx[0]);
------解决方案--------------------for(Iterator iter = map.entrySet().iterator();iter.hasNext();){
Map.Entry element = (Map.Entry)iter.next();
Object strKey = element.getKey();
Object strObj = element.getValue();
}
------解决方案--------------------for(Iterator iter = map.entrySet().iterator();iter.hasNext();){
Map.Entry element = (Map.Entry)iter.next();
Object strKey = element.getKey();
String[] value=(String[])element.getValue();
System.out.print(strKey.toString() +"=");
for(int i=0;i<value.length;i++){
System.out.print(value[i]+",");
}
System.out.println();
}
------解决方案--------------------四楼是正解。
引用
for(Iterator iter = map.entrySet().iterator();iter.hasNext();){
Map.Entry element = (Map.Entry)iter.next();
Object strKey = element.getKey();
Object strObj = element.getValue();
}
如果你用System.out.println(element.getValue().getClass().getName());可以打印出该值的类型。然后再根据类型遍历一下就行了。
------解决方案--------------------我晕 map(String,String[]) 不是现成的么? 还用遍历?
只要没有 checkbox,你就可以 用value[0]得到
即使你要遍历,键和值 也是同步的,怎么还需要对应?
HashMap newMap = new HashMap();
for(Iterator iter = map.entrySet().iterator();iter.hasNext();){
Map.Entry element = (Map.Entry)iter.next();
Object strKey = element.getKey();
String[] value=(String[])element.getValue();
String valueStr="";
System.out.print(strKey.toString() +"=");
for(int i=0;i <value.length;i++){
System.out.print(value[i]+",");
valueStr += value[i] +",";
}
System.out.println();
newMap.put(strKey,valueStr);
}