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"); 

    }

Java 字符串计算频率出现最高的字符的更多相关文章

  1. java一个字符串中出现次数最多的字符以及次数

    学习了别人的方法,觉得挺巧妙的.就是每次取出字符串的第一个字符,将字符串中与第一个字符相同的字符全部删除掉,然后通过计算删除前后字符串的长度来确定该字符在字符串中出现的次数,最终比较出出现最多次的字符 ...

  2. js字符串长度计算(一个汉字==两个字符)和字符串截取

    js字符串长度计算(一个汉字==两个字符)和字符串截取 String.prototype.realLength = function() { return this.replace(/[^\x00-\ ...

  3. Java字符串中常用字符占用字节数

    java中一个char型的数据(也就是一个字符)占两个字节.而Java中常用的字符包括数字.英文字母.英文符号.中文汉字.中文符号等,若在字符串中包含里面的多种字符,它们是否都占两个字符呢?答案是否定 ...

  4. java字符串转义,把&lt;&gt;转换成<>等字符【原】

    java字符串转义,把<>转换成<>等字符 使用的是commons-lang3-3.4 中的StringEscapeUtils类 package test; import ja ...

  5. 使用 Java 查找字符串中出现次数最多的字符以及出现的次数?

    使用 Java 查找字符串中出现次数最多的字符以及出现的次数? import java.util.HashMap; import java.util.Map; public class TestStr ...

  6. Java求字符串中出现次数最多的字符

    Java求字符串中出现次数最多的字符  [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51933611      Java ...

  7. 循环遍历Java字符串字符的规范方法——类似python for ch in string

    比如我将string作为CNN 文本处理输入: float [] input = new float[maxLength]; // 1 sentence by maxLenWords // int[] ...

  8. java截取字符串中的最后几个字符

    Java中的String类提供了一个substring(int from, int to)方法用于截取字符串中位置为from到to-1位置的字符. 因为字符串的字符位置是从0开始的,而substrin ...

  9. 一个 Java 字符串到底有多少个字符?

    来源:http://dwz.win/jqd 依照Java的文档, Java中的字符内部是以UTF-16编码方式表示的,最小值是 \u0000 (0),最大值是\uffff(65535), 也就是一个字 ...

随机推荐

  1. camera驱动框架分析(中)

    camera host的驱动 下面开始分析camera host吧,如果仅仅是想知道camera sensor驱动怎么写,而不想知道内部具体怎么个调用流程,怎么个架构设计,那可以跳过该部分,直接去看i ...

  2. Git-ssh登录github

    生成你的ssh-key $ ssh-keygen -t rsa -b 4096 -C  "SaphhireCastle@163.com" 默认目录为:/Users/you/id_r ...

  3. fullpage.js jq全屏滚动插件

    fullPage.js和fullPage都能实现全屏滚动,二者区别是:fullPage.js需依赖于JQuery库,而fullPage不需要依赖任何一个js库,可以单独使用. (代码演示效果并且可以下 ...

  4. 在react项目中使用ECharts

    这里我们要在自己搭建的react项目中使用ECharts,我们可以在ECharts官网上看到有一种方式是在 webpack 中使用 ECharts,我们需要的就是这种方法. 我们在使用ECharts之 ...

  5. js实现侧边栏信息展示效果

    目前的网页都右侧边栏,有的是在左侧,类似于导航栏,如一些购物商城,还有一些是在网页的右下角,一般是提示客服信息和微信/QQ等服务. 这里都涉及到一个动画效果的展示,即点击侧边栏时会在侧边栏的右侧或者左 ...

  6. 如何获取(GET)一杯咖啡——星巴克REST案例分析

    英文原文:How to GET a Cup of Coffee 我们已习惯于在大型中间件平台(比如那些实现CORBA.Web服务协议栈和J2EE的平台)之上构建分布式系统了.在这篇文章里,我们将采取另 ...

  7. c#实现Form窗体始终在桌面最前端显示

    方法一 //调用API [System.Runtime.InteropServices.DllImport("user32", CharSet = System.Runtime.I ...

  8. ASP.NET: Setup a MVC5 website with MySQL, Entity Framework 6 Code-First and VS2013

    The new features available in EF6 allow any developer to build a simple DB-powered website with very ...

  9. linux中MySQL本地可以连接,远程连接不上问题

    1.网络或防火墙问题 (1)检查网络直接ping你的远程服务器,ping 182.61.22.107,可以ping通说明网络没问题 (2)看端口号3306是不是被防火墙挡住了,telnet 182.6 ...

  10. Codeforces Round 252 (Div. 2)

    layout: post title: Codeforces Round 252 (Div. 2) author: "luowentaoaa" catalog: true tags ...