/**
* 有下列字符串:
* 销售:张三;财务:李四;销售:王五;财务:赵六;程序:mike;程序:jerry;美工:jackson;前端:green;前端:nick;程序:钱七;销售:alice
* 分析上述字符串然后统计每个职位总共多少人?
* 使用Map保存统计的结果,其中key:职位,value为该职位人数
* 然后分别输出各职位的名称(keySet),各职位人数(entrySet)
* @author Xiloer
*
*/
代码如下:
public class Test05 {
public static void main(String[] args) {
String s = "销售:张三;财务:李四;销售:王五;财务:赵六;程序:mike;程序:jerry;美工:jackson;"
+ "前端:green;前端:nick;程序:钱七;销售:alice";
String[] arr = s.split(";");
Map<String,Integer> map = new HashMap<String,Integer>();
for(int i=0;i<arr.length;i++){
String[] each = arr[i].split(":");
if(map.containsKey(each[0])){//若map中已经存在
map.put(each[0],map.get(each[0])+1);//自动拆箱
}else{
map.put(each[0],1);
}
}
Set<Entry<String,Integer>> set = map.entrySet();
for(Entry<String,Integer> en : set){
String position = en.getKey();
Integer number = en.getValue();
System.out.println("职位:"+position+"\t员工人数:"+number);
}
}
}
测试结果如下:
职位:美工 员工人数:1
职位:前端 员工人数:2
职位:程序 员工人数:3
职位:销售 员工人数:3
职位:财务 员工人数:2