/*
* "cbxzbvavdvgd"获取字符串中,每一个字母出现次数:"a(1)b(2)c(1)d(2)g(1)v(3)x(1)z(1)"
* 思路:
* A:把字符串变成字符数组。
* B:定义一个TreeMap集合。Character做键,Integer做值。
* C:遍历字符数组,获取到每一个字符。
* D:拿到该字符,到TreeMap集合中找对应的值
* E:根据返回值是否为null
* 是:存储,把次数记录为1
* 否:把数据++,然后重新存储
* F:把TreeMap的数据拼接成一个字符串。
*/
public class TreeMapTest {
public static void main(String[] args) {
String s = "cbxzbvavdvgd";
// 把字符串变成字符数组。
char[] chs = s.toCharArray();
// 定义一个TreeMap集合。Character做键,Integer做值。
TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
// 遍历字符数组,获取到每一个字符。
for (Character ch : chs) {
// 拿到该字符,到TreeMap集合中找对应的值
Integer i = tm.get(ch);
// 根据返回值是否为null
// 是:存储,把次数记录为1
// 否:把数据++,然后重写存储
if (i == null) {
tm.put(ch, 1);
} else {
i++;
tm.put(ch, i);
}
}
// 把TreeMap的数据拼接成一个字符串。
StringBuilder sb = new StringBuilder();
Set<Character> set = tm.keySet();
for (Character ch : set) {
Integer i = tm.get(ch);
sb.append(ch).append(":").append(i+"个").append(";");
}
String result = sb.toString();
System.out.println(result);
}
}
|
|