曾经的一个面试题,给了一个字符串,由多个字母组成,打印出每个字母出现的次数。
package com.mqs;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Test1 {
//输出字符串每个英文字母出现的次数
public static void main(String[] args) {
printStr("hdusfshhhhsfjksfkssk");
}
public static void printStr(String str){
if( str==null || "".equals(str)){
System.out.println("字符串不能为空!");
return;
}
Map<String, Integer> pMap = new HashMap<String,Integer>();
String[] split = str.split("");
for (int i = 0; i < split.length; i++) {
if(!"".equals(split[i]) && pMap.containsKey(split[i])){
pMap.put(split[i], pMap.get(split[i])+1);
} else if(!"".equals(split[i])){
pMap.put(split[i], 1);
}
}
Set<String> keySet = pMap.keySet();
for (String string : keySet) {
System.out.println(string+"出现的次数:"+pMap.get(string));
}
}
}
输出的结果:
f出现的次数:3
u出现的次数:1
d出现的次数:1
s出现的次数:6
j出现的次数:1
k出现的次数:3
h出现的次数:5