黑马程序员技术交流社区
标题:
还有计算字符串字母次数的方式么?求解
[打印本页]
作者:
xiaoxiao147
时间:
2015-9-8 01:09
标题:
还有计算字符串字母次数的方式么?求解
需求:计算一个字符串中各字符的出现次数,例如:“dsaiadiewbnashd” 输出格式:i(2)b(1)d(3)a
(3)....
思路:
1.先把字符串转成字符数组.
2.看输出格式有两项组成,字母和次数,字母唯一(key),次数可变(value),
定义一个Map集合用以存储.
3.遍历字符数组,在此过程中判断字符是否已经存在于Map中
如果不存在,将此字母以次数1存入集合
如果已存在,将此字母次数加1后存入集合
4.得出的集合元素都是字符,需要使用StringBuffer进行拼接,拼接后转成字符串类型输出.
*/
import java.util.*;
public class CountString
{
public static void main(String[] args)
{
String s = "djiewdjakjwqiasb";
char [] chs = s.toCharArray();
TreeMap<Character,Integer> tm = new TreeMap<>();
for(char c : chs)
{
Integer i = tm.get(c);//通过key获取value
if(i == null)
{
tm.put(c,1);
}
else
{
i++;
tm.put(c,i);
}
}
StringBuffer sb = new StringBuffer();
Set<Character> set = tm.keySet();
for(Character ch : set)
{
Integer k = tm.get(ch);
sb.append(ch).append("(").append(k).append(")");
}
System.out.println(sb.toString());
}
}
以上程序输出结果:a(2)b(1)d(2)e(1)i(2)j(3)k(1)q(1)s(1)w(2)
感觉有点麻烦,请问各位大神还有其他较为便捷的方式吗!!!
作者:
kevin986745zk
时间:
2015-9-8 07:53
这是上课时老师讲的吧,你把它复制过来了,没有创新呀!
作者:
xiaoxiao147
时间:
2015-9-8 22:22
求新的啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2