字符串中字符数量统计——HashMap
解题思路:
- 字符串分割成字符存储在字符数组中
- 将字符数组存储到hashmap,字符为key,数量为value
- 循环遍历key和value就可以得到字符和数量
实现1-2:
for(int i=0;i<s.length();i++) {
//通过charAt()获取每个字符
char ch=s.charAt(i);
//判断map中是不是存在这个key
if(map.containsKey(ch)) {
//由于没有指定hashmap的value的类型,强制转换一下
int count= (int) map.get(ch);
count++;//value+1 覆盖原value
map.put(ch, count);
}else {
//不存在,添加到map集合,并指定value为1,就是字符出现一次
map.put(ch,1);
}
}
实现3:
//构建Set集合,循环遍历输出
Set<Character> set=map.keySet();
//ch 表示字符,map.get(ch) 表示value
for(Character ch:set) {
System.out.println(ch+"出现"+map.get(ch)+"次");
}
全部代码:
import java.util.HashMap;
import java.util.Set;
public class strNumber{
public void str_char_Number(String str){
HashMap map=new HashMap();
for(int i=0;i<str.length();i++) {
//通过charAt()获取每个字符
char ch=str.charAt(i);
if(map.containsKey(ch)) {
int count= (int) map.get(ch);
count++;//value+1 覆盖原value
map.put(ch, count);
}else {
map.put(ch,1);
}
}
Set<Character> set=map.keySet();
for(Character ch:set) {
System.out.println(ch+"出现"+map.get(ch)+"次");
}
}
}