java 获取字符串中的字母出现的次数

来源:互联网 发布:网络上赌博怎么报警 编辑:程序博客网 时间:2024/04/30 00:23
/* * 程序头部注释开始   * 程序的版权和版本声明部分   * Copyright (c) 2011, 烟台大学计算机学院学生   * All rights reserved.   * 文件名称:获取字符串中的字母出现的次数                          * 作    者:薛广晨                               * 完成日期:2012  年 10 月  24  日   * 版 本号:x1.0               * 对任务及求解方法的描述部分   * 输入描述:  * 问题描述: "sdfgzxcvasdfxcvdf"获取该字符串中的字母出现的次数。希望打印结果:a-(1), c-(2), .....* 程序输出:   * 程序头部的注释结束 */import java.util.*;class MapTest6 {public static void main(String[] args) {String str = charCount("sdfgzxcvasdfxcvdf");System.out.println(str);}public static String charCount(String str){char[] chs = str.toCharArray();TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();int count = 0;for(int x = 0; x < chs.length; x++){Integer value = tm.get(chs[x]);if(value != null)count = value;count++;tm.put(chs[x], count);count = 0;/*if(value == null){tm.put(chs[x], 1);}else{value = value + 1;tm.put(chs[x], value);}*/}StringBuilder sb = new StringBuilder();Set<Map.Entry<Character, Integer>> entrySet = tm.entrySet();for(Iterator<Map.Entry<Character, Integer>> it = entrySet.iterator(); it.hasNext(); ){Map.Entry<Character, Integer> me = it.next();Character ch = me.getKey();Integer value = me.getValue();sb.append(ch + "-(" + value + "), ");}return sb.toString();}}