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. Windows+Git+TortoiseGit+COPSSH安装图文教程【转】

    转自:http://blog.csdn.net/aaron_luchen/article/details/10498181/ Windows+Git+TortoiseGit+COPSSH 安装图文教程 ...

  2. Java易错知识点(2) - 在读取Cookie时除了Key,Value是得不到其他信息的

    全文总结: 在读取Cookie,然后操作时,除了getName(),getValue()外,不要妄图得到其他信息,如下方法不会得到值的: cookie.getMaxAge(); cookie.getD ...

  3. cpu事实负载使用top命令

    参考网址:http://www.cnblogs.com/tippoint/archive/2013/03/05/2944319.html 在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据 ...

  4. Docker容器进入的4种方式(转)

    这个文章不错,几种方式及使用范围都讲得清楚. 另外,还有一个文章说了为什么docker中并不合适ssh服务安装的情况. 我现在也是用第四种方式, docker exec -it [docker容器ID ...

  5. AC日记——曼哈顿交易 洛谷 P3730

    曼哈顿交易 思路: 都是套路: 代码: #include <cmath> #include <cstdio> #include <cstring> #include ...

  6. Visual Studio Code更改语言

    参数地址:Visual Studio Code 设置Display Language介绍 在Visual Studio Code中使用快捷键Ctrl + Shift + P可以打开命令行 在local ...

  7. [centos] 需要 libmpc.so.2 提供下载

    http://pan.baidu.com/s/1kTmmthH yum update 的时候需要libmpc.so.2, 于是下载了一个 rpm -ivh filename.rpm  安装上就好了

  8. Codeforces Gym100952 A.Who is the winner? (2015 HIAST Collegiate Programming Contest)

      A. Who is the winner?   time limit per test 1 second memory limit per test 64 megabytes input stan ...

  9. scrapy模拟请求头

    import random USER_AGENT_LIST=[ 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, lik ...

  10. ubantu对pycharm创建快捷方式

    如果你刚开始没有建立快捷方式自己建立一个快捷方式,方法如下 终端输入:sudo gedit /usr/share/applications/Pycharm.desktop粘贴模板: [Desktop ...