A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangqing_tt 中级黑马   /  2015-4-15 12:13  /  232 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itpractice;

import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

/*
* 联系:获取某一字符串的字母出现的次数
*
* 分析:字母具有出现的次数,可以使用Map集合
*
* 思路:
*                 1.将输入的字符串转换成字符数组;
*                 2.定义一个Map集合,这里使用TreeMap集合,可以对字母进行排序
*                 3.遍历字符数组
*                         1)将每一个字母作为键在Map集合中查找;
*                         2)如果查找结果是null,就将该字母和出现的次数1存入到Map集合中;
*                         3)如果返回结果不是null,就将出现的字数加1并更新集合中的数字;
*                 4.将Map集合中的数据转换成字符串进行返回。
*
*/

public class TreeMapTest {

        public static void main(String[] args) {

                // 键盘输入任意一个字符串
                System.out.println("请输入任意一个字符串:");
                Scanner sc = new Scanner(System.in);
                String s = sc.next();

                charCount(s);
        }

        // 定义一个函数:获取某一字符串的字母出现的次数
        public static void charCount(String str) {

                // 定义一个TreeMap集合,用于存放字母和出现的次数
                TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();

                // 将字符串转换成字符数组
                char[] chs = str.toCharArray();
               
                int count = 0;

                // 遍历字符数组
                for (int x = 0; x < chs.length; x++) {

                        // 判断是否是字母
                        if (!((chs[x] >= 'a' && chs[x] <= 'z') || (chs[x] >= 'A' && chs[x] <= 'Z')))
                                continue;

                        // 获取集合中字母的出现次数
                        Integer value = tm.get(chs[x]);

                        if (value != null)
                                count = value;
                       
                        count++;
                        tm.put(chs[x], count);
                       
                        count = 0;

                }
               
                System.out.println(tm);
               
                //打印字母出现的次数
                //Set<Character> set = tm.keySet();
                //Iterator<Character> it = set.iterator();
                Iterator<Character> it = tm.keySet().iterator();
                while(it.hasNext()){
                        Character ch = (Character)it.next();
                        System.out.println(ch+"("+tm.get(ch)+")");
                }
        }

}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马