public class HighFrequencyWord {

public static void findFrequencyWord(String str) { 

        Collection<Integer> al=new ArrayList<Integer>(); 

        Map<String,Integer> map=new HashMap<String,Integer>(); 

        String tempStr = str; 

        String[] stringArray = str.split(""); 

        

        System.out.println(" stringArray.length = "+stringArray.length);

        

        //用来存储字符串里每一个出现过的字符,且不会出现反复的 

        Set<String> set = new HashSet<String>(); 

        int stringLength = stringArray.length; 

        for (int i = 0; i < stringLength; i++) { 

            set.add(stringArray[i]); 

        } 

        //移掉set中的一个空字符 

        set.remove(""); 

         

        System.out.println(set); 

        int count = 0; 

        boolean flag = true; 

         

        for (String s : set) { 

             

            while (flag) { 

                //假设索引存在 

                if (tempStr.indexOf(s) != -1) { 

                    //记录出现字符的当前位置 

                    int index = tempStr.indexOf(s); 

                    //让字符串从下一索引处開始 

                    tempStr = tempStr.substring(index+1); 

                    //假设索引存在,记录值加1 

                    count++; 

                     

                } else { 

                    //假设索引不存在,赋值false退出循环 

                    flag = false; 

                } 

                 

            } 

            //为了运行下一循环 

            flag = true; 

            //把值存入map,让字符与其频率相应 

            map.put(s,count); 

            //由于是上一结果,所以让值归零,而且字符串变回原来的字符串 

            count = 0; 

            tempStr = str; 

             

        } 

        //将map的值变为一个列表 

        al= map.values(); 

        

        //然后转为数组 

        Integer[] stringCount =al.toArray(new Integer[]{}); 

        int countLength=stringCount.length; 

        //按升序排序 

        Arrays.sort(stringCount); 

        //得到数组最大值 

        int max=stringCount[countLength-1]; 

        for(String s: set){ 

            for(int i=0;i<countLength;i++){ 

                //假设map的值与最大值同样,则输出 

                if(map.get(s)==max){ 

                    System.out.println(s + ":" + max); 

                } 

            } 

             

        } 

    } 

     

    public static void main(String[] args) { 

        findFrequencyWord("ababbsssss"); 

    }

最新文章

  1. css3盒模型
  2. linux shell 读取for循环中出现难处理的数据之单引号错误实例
  3. const char * char * const
  4. Spring的核心机制&mdash;&mdash;依赖注入(Dependency Inject)
  5. 【原】RDD专题
  6. javascript组件开发
  7. 【转载】MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用
  8. javascript的navigator对象
  9. [POJ] 1606 Jugs(BFS+路径输出)
  10. 2017中国数据库技术大会(DTCC)又要来啦!期待~~
  11. [iOS Animation]-CALayer 图层树
  12. Android studio签名与代码混淆
  13. delphi 中实现当期日期 减去 若干小时的方法
  14. poj 1039
  15. (办公)Spring boot(系列)的返回json封装类
  16. 转:EditPuls 5.0 注册码
  17. Python面向对象编程和模块
  18. Java多线程学习笔记之三内存屏障与Java内存模型
  19. 20155226 2016-2017-2 《Java程序设计》第6周学习总结
  20. URL的名称设置

热门文章

  1. 在Xcode6中搭建Python开发环境
  2. linux驱动学习(二) Makefile高级【转】
  3. VS mfc MessageBox() 使用英文显示
  4. hrtimer的简单使用 + 原理和实现【转】
  5. Linux设置编译器环境变量
  6. MatserDetail自动展开
  7. Ubuntu16.04 PPA方式安装JDK1.8
  8. selenium3+python自动化50-环境搭建(firefox)【转载】
  9. 关于oracle的sqlplus的另一些小技巧
  10. opencv中CV_IMAGE_ELEM的用法读取每个像素