您的位置:首页 > 编程语言

集合框架_统计字符串中每个字符出现的次数案例代码实现

2017-01-14 01:07 645 查看
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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐