黑马程序员技术交流社区
标题:
一道不错的编程题
[打印本页]
作者:
韩侠
时间:
2015-7-27 22:27
标题:
一道不错的编程题
"cbxzbvavdvgd"获取字符串中,每一个字母出现次数:"a(1)b(2)c(1)d(2)g(1)v(3)x(1)z(1)"
public class TreeMapTest {
public static void main(String[] args) {
String string="cbxzbvavdvgd";
char[]ch=string.toCharArray();//把字符串转换为字符数组
//创建map集合<每个字符,字符的个数>
Map<Character, Integer>map=new TreeMap<Character, Integer>();
//遍历字符数组,获取到每一个字符。
for (char c : ch) {
//得到键对应的值
Integer integer=map.get(c);
//如果得到的值为null,就记为一次
//否则,就累加
if (integer==null) {
map.put(c, 1);
}else {
map.put(c, ++integer);
}
}
System.out.println(map);//{a=1, b=2, c=1, d=2, g=1, v=3, x=1, z=1}
//拼接
StringBuffer stringBuffer=new StringBuffer();
Set<Character>set=map.keySet();//得到键
for (Character character : set) {
Integer integer=map.get(character);//通过键得到对应的值
//拼接
stringBuffer.append(character).append("(").append(integer).append(")");
}
//得到字符串
String sb=stringBuffer.toString();
System.out.println(sb);//a(1)b(2)c(1)d(2)g(1)v(3)x(1)z(1)
}
}
作者:
胡能军
时间:
2015-7-27 22:29
写的很不错的,谢谢分享好的知识
作者:
郑转转
时间:
2015-7-27 22:31
谢谢分享 赞一个
作者:
longlong
时间:
2015-7-27 22:31
赞一个,加油
作者:
刘远东
时间:
2015-7-27 22:32
不错啊. 每行代码清晰易懂/ 一看就知道了.
作者:
亦如梦幻泡影
时间:
2015-7-27 22:39
拼接应该可以直接stringBuffer.append(character+"("+integer+")");这样吧,用链式编程有点长啊
作者:
lishang
时间:
2015-7-27 22:42
赞一个!
作者:
鹰隼展翼
时间:
2015-7-27 22:59
写的不错赞一个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2