package cn.itcast_05;
import java.util.Set;
import java.util.TreeMap;
/*
* 需求:"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:
* "a(5)b(4)c(3)d(2)e(1)"
*
* 分析:
* A:定义一个字符串(键盘录入一个字符串)
* B:定义一个TreeMap集合
* 键:Character
* 值:Integer
* C:把字符串转换为字符数组
* D:遍历字符数组,得到每一个字符
* E:拿这个字符去Map集合中去找,看返回值
* 是null:说明键不存在,就把该字符作为键,1作为值存储
* 不是null:说明该键存在就把值加1,然后重新存储该键和值
* F:定义一个字符串缓冲区
* G:遍历TreeMap集合,获取每一个键值对元素拼接
* H:把字符串缓冲区转换为字符串输出
*/
public class TreeMapDemo {
public static void main(String[] args) {
// 定义一个字符串
String str = "aababcabcdabcde";
// 定义一个Map集合(TreeMap)
TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
// 把字符串转换为字符数组
char[] chs = str.toCharArray();
// 遍历字符数组,得到每一个字符
for (char ch : chs) {
// 拿这个字符去Map集合中去找,看返回值
Integer i = tm.get(ch);
// 是null:说明键不存在,就把该字符作为键,1作为值存储
if (i == null) {
tm.put(ch, 1);
} else {
// 不是null:说明该键存在就把值加1,然后重新存储该键和值
i++;
tm.put(ch, i);
}
}
// 定义一个字符串缓冲区
StringBuilder sb = new StringBuilder();
// 遍历TreeMap集合,获取每一个键值对元素拼接
Set<Character> set = tm.keySet();
for (Character key : set) {
Integer value = tm.get(key);
sb.append(key).append("(").append(value).append(")");
}
// 把字符串缓冲区转换为字符串输出
String result = sb.toString();
System.out.println("result:" + result);
}
}
集合框架_统计字符串中每个字符出现的次数案例代码实现
原创
©著作权归作者所有:来自51CTO博客作者wx62dfdc6aea345的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java中字符串拼接的多种方式
java中字符串拼接的多种方式
java 字符串拼接 -
【Java基础】HashMap集合案例、集合嵌套及统计字符串每个字符出现的次数
【Java基础】HashMap集合案例、集合嵌套及统计字符串每个字符出现的次数的简单示例
java 开发语言 数据结构 jvm 算法 -
统计字符串中各个字符出现的次数(六)
东家蝴蝶西家飞,白骑少年今日归。 愿,所有迷茫的人,都不再迷茫
统计字符串中各个字符出现的次数 字符串 字符串转换 字符数组 -
C语言利用ASCII码表统计字符串每个字符出现的次数
今天在图书馆老胡突然给我出题在C语言里面写个能够统计并打印字符串中字符出现次数心想这不是常规操作吗?“定义一个char数组
统计字符出现次数 ci 数组 #include