代码如下:
public static void main(String[] args) {
Random ran = new Random();
//随机一个字符串从指定的字符中随机选取32个出来!
String letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
char[] cs = new char [32];
for (int i = 0; i < cs.length; i++) {
int index = ran.nextInt(letters.length());//0--字符串的长度-1 下标
cs[i] = letters.charAt(index);
}
//构建字符串
String str = new String(cs);
System.out.println(str);
//使用LinkedHashMap保存字母和出现次数!
//字母第一次出现的时候,就向map中保存此字母和次数1
//字母已经出现过的情况,就从map中取出字母的次数,+1,设置到map中保留!
//containsKey 判断某字母到底有没有在map中保存过!
LinkedHashMap<Character, Integer> map = new LinkedHashMap<Character, Integer>();
//遍历字符串str取出每个字符
for (int i = 0; i < str.length(); i++) {
Character ci = str.charAt(i); //自动装箱
if (!Character.isUpperCase(ci)) {
//不是大写字母就直接到下一个字母!
continue;
}
if (map.containsKey(ci)) {
map.put(ci, map.get(ci)+1);
}else {
map.put(ci, 1);
}
}
Set<Character> keySet = map.keySet();
for (Character c : keySet) {
System.out.println(c+":"+map.get(c));
}
}
解析已经写在了注释内.
对我的博客或其他方面有任何见解或问题的话都可以私信我
或者联系本人QQ:3128909688
微信:DreamHerome
欢迎致电