给出任意一个字符串,分别统计各个字符串分别出现的次数
这是一个简单的编程面试题,要解决这个问题,需要我们对hashMap有一定的了解,解决思路如下:
(1)创建任意一个String对象,也可以是控制台输入(这里为了方便,就直接创建)
(2)将字符串转换成char数组
(3)使用循环遍历数组
(4)判断当前字符是否存在于map中,若没有则放入map,以该字符为键名,count=1;反之则count+1
(5)输出结果
代码如下:
import java.util.HashMap;
import java.util.Map;
public class test2 {
public static void main(String[] args) {
String str = "123 aabnmkhijnk ?!?";
countChar(str);
}
/**
*统计字符数
* @param str
*/
private static void countChar(String str) {
char[] chars = str.toCharArray();
Map<Character,Integer> hashMap = new HashMap<>();
for(Character c:chars){
if (have(hashMap,c)){
hashMap.put(c,hashMap.get(c)+1);
}else{
hashMap.put(c,1);
}
}
System.out.println(hashMap);
}
/**
* 判断hashmap中是否存在该字符
* @param hashMap
* @param c
* @return
*/
private static boolean have(Map<Character, Integer> hashMap, Character c) {
return hashMap.get(c)==null?false:true;
}
}
运行结果:
学会使用分层的编程思想,可以增加代码的可读性,使思路更加清晰,以便更加高效、快捷的解决问题。