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. solaris遇到的问题整理总结

    solaris遇到的问题整理总结 http://zh888.blog.51cto.com/1684752/454326

  2. python--requests_html

    这个模块从名字上也能看出来,是专门用来解析html的,这个和requests的作者是同一人,非常牛逼的一位大佬. 大致读了一下源码,总共一个py文件(但是引用了其他的模块),加上注释总共才700多行, ...

  3. 《简明python教程》笔记三

    图形软件(GUI工具) 可供选择的GUI: 一.PyQT 是Qt工具包的python绑定.Qt工具包是构建KDE的基石.linux下使用免费,windows下使用收费. 二.PyGTK 是GTK+工具 ...

  4. 修改ueditor CSS

  5. P1709 [USACO5.5]隐藏口令Hidden Password

    P1709 [USACO5.5]隐藏口令Hidden Password 题目描述 有时候程序员有很奇怪的方法来隐藏他们的口令.Binny会选择一个字符串S(由N个小写字母组成,5<=N<= ...

  6. slatstack Master的配置

    Salt系统非常简单并且易于配置,Salt系统的两个组件都有各自的配置文件.如"salt-master"是通过主配置文件来配置的,"salt-minion"是通 ...

  7. python的上下文管理(context)(1)

    本文转载自:http://blog.csdn.net/G_66_hero/article/details/53048540 什么是Python中的上下文管理器 怎么使用上下文管理器 如何创建自己的上下 ...

  8. 以前在win7上死活安装不上的pymssql,现在可以安装了

    作SQL发布时,支持了mssql,在linux上,pymssql安装一直没问题,但在windows7上就不可以. 今天要用了,心血来潮,下载了一个新的pymssql的exe文件, 就安装成功了... ...

  9. int 与 String 与 char 之间的互相转换

    int 转 String: //方式一: int i1 = 888; String s1 = Integer.toString(i1); //方式二: int i2 = 888; String s2 ...

  10. android 屏幕显示

    一.像素 android 常用单位 px.dp.sp dp和sp只与屏幕的物理尺寸有关 dp和sp的区别: sp会随着系统字体的大小而改变,通常用来设置字体大小.dp不会随系统设置的字体改变 dp和p ...