统计字符串的个数,感觉在往Map集合存入时,相同的:取出值增加一个,然后添加;不相同的:直接新增,这样更方便了
public class Test1 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String s="abcdekka27qoq";
Map<Character,Integer>map=toMap(s);
printMap(map);
}
//遍历map集合
public static void printMap(Map<Character, Integer> map){
Set<Character> set = map.keySet();
Iterator<Character> it = set.iterator();
while(it.hasNext())
{
Character en = (Character)it.next();
System.out.print(en + "(" + map.get(en) + ")");
}
}
public static Map<Character,Integer> toMap(String str){
//变成一个字节数组
char[] buf=str.toCharArray();
//创建一个Map集合,能存键和值
Map<Character,Integer> map=new HashMap<Character,Integer>();
//遍历,存储值,相同的值取出再增加一个,没有相同的直接新增
int count=1;
for(char ch:buf){//增强性的for循环
if(!map.containsKey(ch)){
map.put(ch,count);
}
else{
int num=map.get(ch);
num++;
map.put(ch, num);
}
}
return map;
}
}
|
|