记录字符串字母出现的次数。

package map;

import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

/*  "aadsuifbnsiubfbisdkbhk"
 *     打印字符出现的次数 如(a(2)  b(4))
 *  从小到大排序输出字符出现的次数(选用TreeMap)
 *  
 *  这个集合最终应该存储的是字母和次数的对应关系
 *  
 *  1,因为操作的是字符串中的字母,所以要先把字符串转成数组
 *  2,遍历字符串数组,用没一个字母作为键去查map集合这个表
 *  如果不存在键,就把该字母作为键存,1作为值存到map集合中。
 *  如果存在这个键,那么就把集合中的键对应的值取出来加1,然后再存到集合中去。
 *  map集合的特点是键相同会覆盖掉值。这样就记录了该字母的次数了。
 *  3,把字符串数组遍历结束,字母出现的次数也就记录完毕了。
 * 
 */

public class StringNumber {
    public static void main(String[] args) {
        String string = "aadsuifbns2534ADFDSiubfbisdkbhk";
        String[] strArr = new String[string.length()];
        for (int i = 0; i < string.length(); i++) {
            strArr[i] = string.substring(i, i + 1);
        }

        Map<String, Integer> treeMap = new TreeMap<String, Integer>();

        for (int i = 0; i < strArr.length; i++) {
            if (!(strArr[i].compareTo("a")>=0 && strArr[i].compareTo("z")<=0||
                    strArr[i].compareTo("A")>=0 && strArr[i].compareTo("Z")<=0
                    ) )
            {
                continue;
            }

            Integer value = treeMap.get(strArr[i]);
            if (value == null) {
                treeMap.put(strArr[i], 1);
            } else {
                treeMap.put(strArr[i], value + 1);
            }

        }
        
        Iterator<String> tIterator = treeMap.keySet().iterator();
        while (tIterator.hasNext()) {
            String key = tIterator.next();
            Integer value = treeMap.get(key);
            System.out.print(key + "(" + value + ")");
        }
        

    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值